api 范围和 identityserver4 中的用户声明之间的差异
Different between api scope and user claim in 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 的写入权限怎么办?我对这两个感到困惑。
预先感谢您的帮助。
范围是特殊声明,它定义了客户端可以访问的资源。
用户声明只是关于用户的断言。您通常会给用户一个 "role" 或 "permission" 声明(或类似的东西)。如果基于范围的授权不能满足您的要求,您可以通过用户声明进行一些声明授权。
Scopes 定义您是否有权访问 API。 Claims 更细化的地方。在 API 内,您可以访问哪些资源?例如,您可以访问像名称这样的身份资源。
我正在阅读 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 的写入权限怎么办?我对这两个感到困惑。 预先感谢您的帮助。
范围是特殊声明,它定义了客户端可以访问的资源。 用户声明只是关于用户的断言。您通常会给用户一个 "role" 或 "permission" 声明(或类似的东西)。如果基于范围的授权不能满足您的要求,您可以通过用户声明进行一些声明授权。
Scopes 定义您是否有权访问 API。 Claims 更细化的地方。在 API 内,您可以访问哪些资源?例如,您可以访问像名称这样的身份资源。