【问题标题】:IdenityServer4 doubts on IdentityResource, usercalimsIdenityServer4对IdentityResource、usercalims的疑惑
【发布时间】:2021-08-08 12:21:30
【问题描述】:

我对身份资源用户声明有疑问

我的配置如下 场景 1

身份资源(“家庭”)-->用户声称为[“kid1”,“kid2”,“wife”]

Q1:根据文档“应包含在身份令牌中的关联用户声明类型列表”。但我在身份令牌中看不到这个?

场景 2

IS 配置

身份资源 ("family" ) --> 用户声明 [ "kid1", "kid2", "wife"]

API 范围 (api1) --> 用户声明 ["role"] API Scope (api2) --> 用户声明 ["country", "address"]

API 资源 (TestAPI2Test) --> API 范围 ["api1", "api2"] 和用户声明 ["role", "wife"] API 资源 (TestAPI1) --> API 范围 ["api1", "api2"] 和用户声明 ["role", "siblings", "wife"] API 资源 (testResource) --> API 范围 ["api2"] 和用户声明 ["role", "siblings", "kid1", "name"]

Angular 客户端配置 请求范围:[openid profile api1 offline_access 系列]

access_token

"aud": [
"TestAPI1",
"TestAPI2Test",
"https://localhost:5001/resources"
],
"idp": "local",
"role": "admin",
"wife": "Sandra",
"sid": "BD5F4222976FFE2752168EFDE9391B2B",
"iat": 1621413193,
"scope": [
"openid",
"profile",
"api1",
"family",
"offline_access"
],

Q2:为什么我看不到身份资源用户使用 access_token 声明“kid1”、“kid2”? Q3:我可以看到只有 API Resource 用户声明只包含在 access_token 中,Identity token 用户声明在请求用户端点时被重新调整?

您能否就 Q1、Q2 和 Q3 提供建议/澄清?

【问题讨论】:

    标签: identityserver4


    【解决方案1】:

    您可以在 IdentityServer 的客户端配置中配置声明是否应包含在 ID-Token 中,或者是否应从 /UserInfo 端点单独检索。

    你使用这个标志来设置这个: AlwaysIncludeUserClaimsInIdToken = true/false;

    只有添加到 ApiScope 和 ApiResources 的 userClaims 才会包含在访问令牌中。

    在 IdentityResource 下添加的声明/范围控制最终在 ID-token/UserInfo 端点中的内容。

    【讨论】:

    • 感谢 Tore Nestenius 的回答,我已经尝试过 AlwaysIncludeUserClaimsInIdToken 但我怀疑“应该包含在身份令牌中的关联用户声明类型列表”。这意味着什么?据我所知,身份令牌是 id_token 对吗?根据我的经验,我理解的是与登录用户声明相关的身份资源用户声明。与 ApiScope 和 ApiResources 相关的 UserClaims 包含在 access_token 中并用于 API。表示如果您想从 API 中获取声明值,则需要包含在 access_token 中
    • 是的,API 只获取访问令牌,并且在其中您有用户声明。理论上,您可以在其中一个事件处理程序中,使用访问令牌调用 IdentityServer UserInfo 或令牌自省端点,以获取有关访问令牌和用户的更多详细信息。
    • 如何访问令牌自省端点?可以通过传递访问令牌来访问 UserInfo,但我不确定令牌自省端点
    • 你将访问令牌传递给自省端点,其方式与 userinfo 相同,其主要目的是允许 api 获取访问令牌的当前状态(为主动声明)。
    • 如果我的回答回答了你的问题,请随时接受
    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 2020-11-02
    • 1970-01-01
    • 2017-02-16
    • 2013-09-06
    • 1970-01-01
    • 2013-08-12
    • 2018-11-30
    相关资源
    最近更新 更多