layout: docs-default
作用域和聲明
IdentityServer.Core.Models.Scope
類構(gòu)建了OpenID Connect 和 OAuth2 作用域.
-
Enabled
- 指明啟用作用域沫屡,作用域可以申請(qǐng)等太。默認(rèn)是
true
.
- 指明啟用作用域沫屡,作用域可以申請(qǐng)等太。默認(rèn)是
-
Name
- 作用域的名字。客戶端用這個(gè)名字申請(qǐng)作用域捞附。
-
DisplayName
- 在
同意
頁面上的顯示名稱。
- 在
-
Description
- 在
同意
頁面上的顯示的介紹源内。
- 在
-
Required
- 在
同意
頁面上毯炮,用戶可以選擇或者取消這個(gè)作用域。默認(rèn)是false
.
- 在
-
ScopeSecrets
( v2.2新增)- 給作用域加上密鑰(給內(nèi)審端點(diǎn)使用) - 請(qǐng)參照 這里.
-
AllowUnrestrictedIntrospection
(v2.3新增)- 當(dāng)時(shí)用內(nèi)審端點(diǎn)時(shí)肃弟,在訪問令牌中允許這個(gè)作用域查看其它作用域玷室。
-
Emphasize
- 在
同意
頁面是否強(qiáng)調(diào)這個(gè)作用域。使用這個(gè)設(shè)置突出顯示敏感或重要的作用域笤受,默認(rèn)是false
.
- 在
-
Type
- 作用域或者是
Identity
(OpenID Connect 相關(guān)) 或者是Resource
(OAuth2 資源). 默認(rèn)為Resource
.
- 作用域或者是
-
Claims
- 用戶聲明列表穷缤,包含在身份令牌(identity 作用域) 或者訪問令牌(資源作用域).
-
IncludeAllClaimsForUser
*啟用后,用戶的所有聲明會(huì)包含在令牌中箩兽。默認(rèn)是false
. -
ClaimsRule
- 判定那個(gè)聲明會(huì)被包含在令牌中的規(guī)則津肛。(這是實(shí)現(xiàn)規(guī)格)
-
ShowInDiscoveryDocument
- 指定這個(gè)作用域是否出現(xiàn)在發(fā)現(xiàn)(discovery)文檔中。默認(rèn)為
true
.
- 指定這個(gè)作用域是否出現(xiàn)在發(fā)現(xiàn)(discovery)文檔中。默認(rèn)為
作用域同樣指定那些聲明會(huì)放到對(duì)應(yīng)的令牌里 - ScopeClaim
類包含下面的屬性:
-
Name
- 聲明的名字
-
Description
- 聲明的描述
-
AlwaysIncludeInIdToken
- 指定聲明是否總是放到身份令牌中(即使用戶已經(jīng)取到了訪問令牌).只對(duì)身份作用域有效汗贫。默認(rèn)是
false
.
- 指定聲明是否總是放到身份令牌中(即使用戶已經(jīng)取到了訪問令牌).只對(duì)身份作用域有效汗贫。默認(rèn)是
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' 指定了某個(gè)聲明一定會(huì)被包含在身份令牌中身坐,即使用戶已經(jīng)從用戶信息端點(diǎn)得到了訪問令牌。
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)
}
};