【发布时间】:2019-06-09 18:41:15
【问题描述】:
喏,
我正在使用 IdentityServer4,目标是保护资源 api 并在我的组织内公开身份服务器。
所以实际上我有这些元素:
- 授权服务器
- API 资源
- 客户端(SPA 应用程序)
我想使用范围和用户角色访问的单个操作来保护我的 API。所以例如我有这个api:
- API 1 (Scope API 1)
- Action1.1 <-- Only admin
- Action1.2 <-- Only manager
- Action1.3 <-- Only manager
- API 2 (Scope API 2)
- Action2.1 <-- Admin and manager
- Action2.2 <-- Only users
- Action2.3 <-- Only users
我知道 OAuth2 协议用于授权(及其 access_token),而 OpenID Connect 丰富了支持身份验证的 OAuth2 协议(及其 identity_token)。
我会知道实现我的目标的最佳做法是什么。我找到了两个选择:
- 发送到API资源identity_token和authorization_token(这样我可以通过identity_token查看用户的角色并且可以访问范围)。
- 将角色添加到 access_token。
最佳做法是什么?欢迎任何建议
谢谢
【问题讨论】:
标签: asp.net-core oauth-2.0 identityserver4 openid-connect