我正在阅读identityserver4 guildence,这是示例代码
UserClaims =
{
new UserClaim(JwtClaimTypes.Name),
new UserClaim(JwtClaimTypes.Email)
},
// this API defines two scopes
Scopes =
{
new Scope()
{
Name = "api2.full_access",
DisplayName = "Full access to API 2",
},
new Scope
{
Name = "api2.read_only",
DisplayName = "Read only access to API 2"
}
}
我的问题是 似乎范围用于控制哪个客户端可以访问api资源,并且用户声明控制用户对api的权限。让我们看看" api2.read_only",这是否意味着具有此范围的客户端只能拥有对api的读取权限?但是如果用户有例如:为特定api写入访问权限呢?我对这两个人感到困惑。 提前感谢您的帮助。
答案 0 :(得分:2)
范围是特殊声明,用于定义客户端可以访问的资源。 用户声明只是关于用户的断言。您通常会向用户提供“角色”或“许可”声明(或类似内容)。通过使用用户声明,如果基于范围的授权不符合您的要求,您可以进行一些声明授权。
答案 1 :(得分:2)
范围定义您是否有权访问API。索赔更精细。在API中,您可以访问哪些资源?例如,您可以访问名称等身份资源。