我已经配置了IdentityServer4的实例,并成功地将其配置为OIDC提供程序的客户端。现在我正在尝试将其设置为我的应用程序的OIDC提供程序。我按照快速入门和文档进行了操作,但我很难找到对我的具体问题的答案。
用户声明可以在几个不同的位置指定:API资源和API作用域。在API资源和该资源的API作用域上指定用户声明有什么区别?
我对术语的理解是:
- API资源表示客户端将访问的API,例如 "GitHub API",我的 "数据导入API"
- API范围表示API中的资源子集,客户端可以请求访问这些资源,例如
repo
=> 公共和私有存储库,import_job:control
=> 启动/停止/删除导入作业 - 用户声明是关于用户的信息片段,例如
email
=> 电子邮件地址
将用户声明与API资源和/或作用域关联一定是有意义的,但我无法进行精神飞跃以确定为什么以及如何关联。请在上述上下文中提供这些声明的说明性示例:GitHub API(假设没有定义任何内容)和通用批量导入API。
答案:
我已配置IdentityServer4的实例,并成功地将其配置为OIDC提供程序的客户端。现在我正在尝试将其设置为我的应用程序的OIDC提供程序。我按照快速入门和文档进行了操作,但我很难找到对我的具体问题的答案。
用户声明可以在几个不同的位置指定:API资源和API作用域。在API资源和该资源的API作用域上指定用户声明有什么区别?
我对术语的理解是:
- API资源表示客户端将访问的API,例如 "GitHub API",我的 "数据导入API" - API范围表示API中的资源子集,客户端可以请求访问这些资源,例如
repo
=> 公共和私有存储库,import_job:control
=> 启动/停止/删除导入作业
- 用户声明是关于用户的信息片段,例如 email
=> 电子邮件地址将用户声明与API资源和/或作用域关联一定是有意义的,以下是说明性示例:
- 对于GitHub API,可能会定义一个名为
profile
的API资源,它代表GitHub用户资料。在此API资源上,可能会指定用户声明name
和blog
,分别代表用户的名称和博客URL。
- 对于批量导入API,可能会定义一个名为batch
的API资源,它代表批次导入任务。在此API资源上,可以指定用户声明job_title
,表示批次导入任务所属的工作职称。因此,API资源和API作用域上的用户声明可以为客户端提供有关所请求访问的资源和数据的额外信息。