layout: docs-default
作用域和声明
IdentityServer.Core.Models.Scope
类构建了OpenID Connect 和 OAuth2 作用域.
-
Enabled
- 指明启用作用域,作用域可以申请。默认是
true
.
- 指明启用作用域,作用域可以申请。默认是
-
Name
- 作用域的名字。客户端用这个名字申请作用域。
-
DisplayName
- 在
同意
页面上的显示名称。
- 在
-
Description
- 在
同意
页面上的显示的介绍。
- 在
-
Required
- 在
同意
页面上,用户可以选择或者取消这个作用域。默认是false
.
- 在
-
ScopeSecrets
( v2.2新增)- 给作用域加上密钥(给内审端点使用) - 请参照 这里.
-
AllowUnrestrictedIntrospection
(v2.3新增)- 当时用内审端点时,在访问令牌中允许这个作用域查看其它作用域。
-
Emphasize
- 在
同意
页面是否强调这个作用域。使用这个设置突出显示敏感或重要的作用域,默认是false
.
- 在
-
Type
- 作用域或者是
Identity
(OpenID Connect 相关) 或者是Resource
(OAuth2 资源). 默认为Resource
.
- 作用域或者是
-
Claims
- 用户声明列表,包含在身份令牌(identity 作用域) 或者访问令牌(资源作用域).
-
IncludeAllClaimsForUser
*启用后,用户的所有声明会包含在令牌中。默认是false
. -
ClaimsRule
- 判定那个声明会被包含在令牌中的规则。(这是实现规格)
-
ShowInDiscoveryDocument
- 指定这个作用域是否出现在发现(discovery)文档中。默认为
true
.
- 指定这个作用域是否出现在发现(discovery)文档中。默认为
作用域同样指定那些声明会放到对应的令牌里 - ScopeClaim
类包含下面的属性:
-
Name
- 声明的名字
-
Description
- 声明的描述
-
AlwaysIncludeInIdToken
- 指定声明是否总是放到身份令牌中(即使用户已经取到了访问令牌).只对身份作用域有效。默认是
false
.
- 指定声明是否总是放到身份令牌中(即使用户已经取到了访问令牌).只对身份作用域有效。默认是
role
身份作用域的例子:
var roleScope = new Scope
{
Name = "roles",
DisplayName = "Roles",
Description = "Your organizational roles",
Type = ScopeType.Identity,
Claims = new List<ScopeClaim>
{
new ScopeClaim(Constants.ClaimTypes.Role, alwaysInclude: true)
}
};
'AlwaysIncludeInIdentityToken' 指定了某个声明一定会被包含在身份令牌中,即使用户已经从用户信息端点得到了访问令牌。
IdentityManager
API作用域的例子:
var idMgrScope = new Scope
{
Name = "idmgr",
DisplayName = "IdentityManager",
Type = ScopeType.Resource,
Emphasize = true,
Claims = new List<ScopeClaim>
{
new ScopeClaim(Constants.ClaimTypes.Name),
new ScopeClaim(Constants.ClaimTypes.Role)
}
};
网友评论