我不太理解使用APIResource和APIScopes的保护API
我有一个有角度的客户端应用程序,它正在调用一个.Net API,比如API1,Api2,如何在APIResource中定义值。
迁移后,我将查看Identity server4 (Version4.0.0)数据库表。我找到了下面的桌子
我的理解是,我们可以为API设置使用1-5个表,也可以使用6-8个表。我试过用1-5桌。ApiResources、ApiResourceScopes和ApiResourceClaims中的增加值但低于错误值
[18:03:53 Debug] IdentityServer4.EntityFramework.Stores.ResourceStore
Found ["TestAPI.Read"] scopes in database表中的值

发布于 2021-04-14 07:53:36
首先,我建议你读我的答案,这里
它包含将包含在访问令牌中的用户声明列表。也就是说,它将从用户数据库获取的声明的名称。
你需要系一个ApiScope。您需要一个包含一个或多个ApiScope的ApiResources。
ApiResources表示系统中的各个API。因此,每个API都有一个ApiResource。您可以使用ApiResource名称和秘密让各个API针对IdentityServer进行身份验证和登录,例如获取访问令牌(象征性内省)的详细信息。
我想下面的图片显示了各个部分之间的关系:

客户端请求一个ApiSCope,然后创建一个访问令牌,该令牌将授予对一个或多个ApiResources的访问权。每个ApiResource都可能使用userclaims请求获得您希望在访问令牌中显示的其他用户信息。可能用于API中的授权步骤。以确定是否真正允许用户进入。
https://stackoverflow.com/questions/67085958
复制相似问题