gpt4 book ai didi

scope - ApiResource 中使用的 Claims 和 IdentityServer4 中的 Scope 有什么不同

转载 作者:行者123 更新时间:2023-12-01 13:31:16 29 4
gpt4 key购买 nike

我创建了一个 ResourceApi在我的 IndetityServer4像这样:

我定义了一个名为 API 1 的 ApiResource并直接指定 claim - name, sub对于这个 api 资源,我扩展了这个资源并指定了两个名为 Api1.Read 的范围和 Api1.Write并为每个范围指定我需要为 API 的特定部分提供的特定声明,但我不明白 ApiResource 和 Scopes 中使用的声明之间有什么不同?

什么意思Claims直接连接在 ApiResource和声明用于 Scope ?

我曾尝试仅针对 sub and name 在 ApiResource 中限制 UserClaims但如果我想在 Api1.Write claim role它在访问 token 中发送,但在 Api1 的定义中仅指定 name and sub - 为什么在 ApiResource 中定义了 UserClaims?

var apiResource = new ApiResource
{
Name = "Api1",
UserClaims = new List<string> { "name", "sub" },

Scopes = new List<Scope>
{
new Scope
{
Name = "Api1.Read",
UserClaims = new List<string> {"sub", "name"}
},
new Scope
{
Name = "Api1.Write",
UserClaims = new List<string> {"sub", "name", "role"}
}
}
};

最佳答案

根据 documentation on ApiResource , UserClaimsApiResource本身将始终包含在访问 token 中。如果你将该 api 分成多个 Scope的,UserClaims在那里列出将被添加到 UserClaimsApiResource 中指定.

关于scope - ApiResource 中使用的 Claims 和 IdentityServer4 中的 Scope 有什么不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45859032/

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