在identityserver4中api范围和用户声明之间有所不同

时间:2016-12-11 10:40:17

标签: asp.net-mvc identityserver4

我正在阅读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写入访问权限呢?我对这两个人感到困惑。 提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

范围是特殊声明,用于定义客户端可以访问的资源。 用户声明只是关于用户的断言。您通常会向用户提供“角色”或“许可”声明(或类似内容)。通过使用用户声明,如果基于范围的授权不符合您的要求,您可以进行一些声明授权。

答案 1 :(得分:2)

范围定义您是否有权访问API。索赔更精细。在API中,您可以访问哪些资源?例如,您可以访问名称等身份资源。