gpt4 book ai didi

database - 澄清 Identityserver 4 使用 ApiResources 保护 API 范围

转载 作者:行者123 更新时间:2023-12-05 03:42:55 27 4
gpt4 key购买 nike

我不太了解使用 APIResource 和 APIScopes 保护 API

我有一个调用 .Net API 的 Angular 客户端应用程序,比如 API1、Api2,我如何定义 APIResource 中的值。

迁移后,我正在检查 Identity server4(版本 4.0.0)数据库表。我找到了如下表格

  1. API资源

  2. ApiResourceScopes

  3. ApiResourceClaims

  4. ApiResourceProperties

  5. ApiResourceSecrets

  6. ApiScopes

  7. ApiScopeClaims

  8. ApiScopeProperties

我的理解是我们可以使用 1-5 个表进行 API 设置,或者我们可以使用 6-8 个表。我试过表 1-5。在 ApiResources 、ApiResourceScopes 和 ApiResourceClaims 中添加了值,但低于错误

[18:03:53 Debug] IdentityServer4.EntityFramework.Stores.ResourceStore
Found ["TestAPI.Read"] scopes in database

表中的值

ApiResources

  1. ApiResourceClaims 表有什么用?这是使用访问 token 的返回用户声明吗?

  2. 如何从客户端访问此范围?

  3. 还有其他表吗,需要加数据吗?

最佳答案

首先我建议你阅读我的回答here

  • ApiResourceClaims 表有什么用?这是使用访问 token 的返回用户声明吗?

它包含将包含在访问 token 中的用户声明列表。意思是,它随后将从用户数据库中获取的声明的名称。

  • 如何从客户端访问此范围?

您需要绑定(bind)一个 ApiScope。您要求一个 ApiScope,然后它将包含一个或多个 ApiResources。

ApiResources 代表您系统中的各个 API。因此,每个 API 都有一个 ApiResource。您使用 ApiResource 名称和密码让各个 API 针对 IdentityServer 进行身份验证并登录以获取有关访问 token (Token introspection) 的详细信息

我认为下面这张图片显示了各个部分之间的关​​系: enter image description here

客户端请求一个 ApiSCope,然后它将创建一个访问 token ,该 token 将提供对一个或多个 ApiResources 的访问权限。每个 ApiResource 都可能使用 userclaims 请求您希望在访问 token 中显示的其他用户信息。也许是为了 API 中的授权步骤。确定用户是否真的被允许进入。

关于database - 澄清 Identityserver 4 使用 ApiResources 保护 API 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67085958/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com