• 第58章 Profile Service


    IdentityServer通常在创建令牌或处理对userinfo或内省端点的请求时需要有关用户的身份信息。默认情况下,IdentityServer仅具有身份验证cookie中的声明,以便为此身份数据进行绘制。

    将用户所需的所有可能声明放入cookie中是不切实际的,因此IdentityServer定义了一个可扩展点,允许根据用户需要动态加载声明。这个可扩展点是IProfileService开发人员通常可以实现此接口来访问包含用户身份数据的自定义数据库或API。

    58.1 IProfileService APIs

    • GetProfileDataAsync
      期望为用户加载声明的API。它传递了一个实例ProfileDataRequestContext

    • IsActiveAsync
      预期用于指示当前是否允许用户获取令牌的API。它传递了一个实例IsActiveContext

    58.2 ProfileDataRequestContext

    模拟用户声明的请求,并且是返回这些声明的工具。它包含以下属性:

    • Subject
      ClaimsPrincipal模型的用户。

    • Client
      Client用于正被请求的声明。

    • RequestedClaimTypes
      请求的声明类型集合。

    • Caller
      正在请求声明的上下文的标识符(例如,身份令牌,访问令牌或用户信息端点)。常量IdentityServerConstants.ProfileDataCallers包含不同的常量值。

    • IssuedClaims
      将返回Claim的列表。预计这将由自定义IProfileService实现填充。

    • AddRequestedClaims
      扩展方法对ProfileDataRequestContext填充IssuedClaims,但首先根据索引过滤RequestedClaimTypes

    58.3 请求的范围和声明映射

    客户端请求的范围控制用户声明在令牌中返回给客户端的内容。该GetProfileDataAsync方法负责根据ProfileDataRequestContext上的RequestedClaimTypes集合动态获取这些声明。

    RequestedClaimTypes集合是基于该定义的用户声明资源的范围进行建模。如果请求的范围是身份资源,则将RequestedClaimTypes根据在IdentityResource中定义的用户声明类型填充声明中的声明。如果请求的范围是API资源,则将RequestedClaimTypes根据ApiResource中定义的用户声明类型填充声明中的声明Scope

    58.4 IsActiveContext

    对要确定的请求建模是当前允许用户获取令牌。它包含以下属性:

    • Subject
      ClaimsPrincipal模型的用户。

    • Client
      Client用于正被请求的声明。

    • Caller
      正在请求声明的上下文的标识符(例如,身份令牌,访问令牌或用户信息端点)。常量IdentityServerConstants.ProfileDataCallers包含不同的常量值。

    • IsActive
      指示是否允许用户获取令牌的标志。预计这将由自定义IProfileService实现分配。

    github地址

  • 相关阅读:
    html5文件api
    折腾一个自己的UrlRewrite
    hdu 4218 ( IMBA? )
    hdu 4217 Data Structure
    九度OJ 1008
    倒酒趣题详解
    第三届蓝桥杯复赛原题
    第三届蓝桥杯复赛题解析
    hdu 4223 Dynamic Programming
    hdu 4224 Enumeration
  • 原文地址:https://www.cnblogs.com/thinksjay/p/10787364.html
Copyright © 2020-2023  润新知