澄清 Identityserver 4 使用 ApiResources 保护 API 范围
Clarification on Identityserver 4 protecting API scopes with ApiResources
我不太了解使用 APIResource 和 APIScopes
保护 API
我有一个 angular 客户端应用程序正在调用 .Net APIs 让我们说 API1,Api2,我如何定义 API 中的值资源。
迁移后我正在检查 Identity server4(版本 4.0.0)数据库 table。我发现 table 如下
ApiResources
ApiResourceScopes
ApiResourceClaims
ApiResourceProperties
ApiResourceSecrets
ApiScopes
ApiScopeClaims
ApiScopeProperties
我的理解是我们可以使用 1-5 tables 进行 API 设置,或者我们可以使用 6-8 tables。我尝试使用 tables 1-5。在 ApiResources 、ApiResourceScopes 和 ApiResourceClaims 中添加值但低于错误
[18:03:53 Debug] IdentityServer4.EntityFramework.Stores.ResourceStore
Found ["TestAPI.Read"] scopes in database
表中的值
ApiResourceClaims有什么用table?这个返回的用户是否使用访问令牌声明?
如何从客户端访问此范围?
还有没有其他的table,需要加数据吗?
首先我建议你阅读我的回答
- ApiResourceClaims 有什么用table?这个返回的用户是否使用访问令牌声明?
它包含将包含在访问令牌中的用户声明列表。意思是,它将从用户数据库中获取的声明的名称。
- 如何从客户端访问此范围?
您需要绑定一个 ApiScope。您要求一个 ApiScope,然后将包含一个或多个 ApiResources。
ApiResources 代表您系统中的个体 API。因此,每个 API 有一个 ApiResource。您使用 ApiResource 名称和密码让个人 API 针对 IdentityServer 进行身份验证并登录,例如获取有关访问令牌的详细信息 (Token introspection)
我认为我下面的这张图显示了各个部分之间的关系:
客户端请求一个 ApiSCope,然后它将创建一个访问令牌,该令牌将提供对一个或多个 ApiResources 的访问权限。每个 ApiResource 都可能使用 userclaims 请求您希望在访问令牌中显示的其他用户信息。也许是为了 API 中的授权步骤。判断用户是否真的被允许进入。
我不太了解使用 APIResource 和 APIScopes
保护 API我有一个 angular 客户端应用程序正在调用 .Net APIs 让我们说 API1,Api2,我如何定义 API 中的值资源。
迁移后我正在检查 Identity server4(版本 4.0.0)数据库 table。我发现 table 如下
ApiResources
ApiResourceScopes
ApiResourceClaims
ApiResourceProperties
ApiResourceSecrets
ApiScopes
ApiScopeClaims
ApiScopeProperties
我的理解是我们可以使用 1-5 tables 进行 API 设置,或者我们可以使用 6-8 tables。我尝试使用 tables 1-5。在 ApiResources 、ApiResourceScopes 和 ApiResourceClaims 中添加值但低于错误
[18:03:53 Debug] IdentityServer4.EntityFramework.Stores.ResourceStore
Found ["TestAPI.Read"] scopes in database
表中的值
ApiResourceClaims有什么用table?这个返回的用户是否使用访问令牌声明?
如何从客户端访问此范围?
还有没有其他的table,需要加数据吗?
首先我建议你阅读我的回答
- ApiResourceClaims 有什么用table?这个返回的用户是否使用访问令牌声明?
它包含将包含在访问令牌中的用户声明列表。意思是,它将从用户数据库中获取的声明的名称。
- 如何从客户端访问此范围?
您需要绑定一个 ApiScope。您要求一个 ApiScope,然后将包含一个或多个 ApiResources。
ApiResources 代表您系统中的个体 API。因此,每个 API 有一个 ApiResource。您使用 ApiResource 名称和密码让个人 API 针对 IdentityServer 进行身份验证并登录,例如获取有关访问令牌的详细信息 (Token introspection)
我认为我下面的这张图显示了各个部分之间的关系:
客户端请求一个 ApiSCope,然后它将创建一个访问令牌,该令牌将提供对一个或多个 ApiResources 的访问权限。每个 ApiResource 都可能使用 userclaims 请求您希望在访问令牌中显示的其他用户信息。也许是为了 API 中的授权步骤。判断用户是否真的被允许进入。