【问题标题】:ApiResource vs ApiScope vs IdentityResourceApiResource vs ApiScope vs IdentityResource
【发布时间】:2020-12-27 20:35:09
【问题描述】:

我已阅读 IdentityServer4 文档,但我无法理解这三个概念之间的确切区别。 (ApiResource vs ApiScope vs IdentityResource)

1- 正如文档中所说,API Scope 对 OAuth 范围进行建模。 API Resource 对 API 资源进行建模。那么 OAuth 范围和 API 资源有什么区别呢?

2- 另外,正如我在document 的这一部分中所了解的,在身份服务器中客户端定义的AllowsScope 中,我们必须添加身份资源。那么 Identity 资源的具体用途是什么?

3- 如果我将一些 IdentityResources 添加到客户端 AllowsScopes,我如何在客户端中看到这些资源?

我是 Identity Server 的初学者,这意味着我的问题可能是初级的。但请回答它,我已经搜索了很多,并没有完全解释这些概念。比如here就是Identity资源的定义!

【问题讨论】:

    标签: c# identityserver4


    【解决方案1】:

    IdentityResources 下列出的范围是将包含在 ID 令牌中的范围。

    ApiScopes 是您作为客户和您同意的用户所要求的。 或者,一个或多个 ApiResources 可以与 ApiScope 相关联。

    ApiScopeApiResources 控制访问令牌中包含的内容。 ApiResources 指出访问令牌中的 aud 声明将包含什么。

    总而言之,客户端发送的范围是 IdentityResources 和 ApiScopes 的列表。

    【讨论】:

    • 我看这里的文档,和你说的正好相反,ApiResource,可以指出一个或多个ApiScope。我对吗? identityserver4.readthedocs.io/en/latest/topics/…
    • 我还有一个问题,我将“email”添加到允许的客户端范围,并将其添加到身份资源中,然后通过 add.scope("email) 将其添加到客户端范围。但是当我解密 IDToken 看不到其中的电子邮件值。(用户声称有“电子邮件”)
    • 我澄清了文本和图像,逻辑上,一个 ApiScopes 包含零个或多个 ApiResources。但在代码中,ApiResource 会选择它们所属的 ApiScope。
    • 我修复了一个箭头错误并添加了范围,开心吗?
    • 范围是您作为客户要求的,然后范围映射到身份资源和 ApiScope。换句话说,范围是 IdentityResources 和 ApiScopes 的列表。
    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2011-09-18
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2010-12-09
    • 2017-06-20
    相关资源
    最近更新 更多