訓練
認證
Microsoft Certified: Identity and Access Administrator Associate - Certifications
示範 Microsoft Entra ID 的功能,以現代化身分識別解決方案、實作混合式解決方案,以及實作身分識別治理。
Microsoft Entra 所傳回權杖的大小較小,以確保要求這些權杖的用戶端達到最佳效能。 因此,權杖中預設不再有數個宣告,而且必須依據個別應用程式明確提出要求才會提供。
針對您的應用程式,您可以透過 Microsoft Entra 系統管理中心的應用程式 UI 或資訊清單來設定選擇性宣告。
optionalClaims
物件宣告應用程式所要求的選擇性宣告。 應用程式可以設定識別碼權杖、存取權杖和 SAML 2 權杖中所傳回的選擇性宣告。 應用程式可以設定一組要在每個權杖類型中傳回的不同選擇性宣告。
名稱 | 類型 | 描述 |
---|---|---|
idToken |
集合 | 在 JWT 識別碼權杖中傳回的選擇性宣告。 |
accessToken |
集合 | 在 JWT 存取權杖中傳回的選擇性宣告。 |
saml2Token |
集合 | 在 SAML 權杖中傳回的選擇性宣告。 |
如果特定宣告予以支援,則您也可以使用 additionalProperties
欄位來修改選擇性宣告的行為。
名稱 | 類型 | 描述 |
---|---|---|
name |
Edm.String | 選擇性宣告的名稱。 |
source |
Edm.String | 宣告的來源 (目錄物件)。 有來自延伸模組屬性的預先定義宣告和使用者定義宣告。 如果來源值為 null,宣告便是預先定義的選擇性宣告。 如果來源值為 user,名稱屬性中的值即為來自使用者物件的延伸模組屬性。 |
essential |
Edm.Boolean | 如果值為 true,就必須要有用戶端指定的宣告,才能確保使用者所要求之特定工作的授權體驗順暢。 預設值為 false。 |
additionalProperties |
集合 (Edm.String) | 宣告的其他屬性。 如果屬性存在於此集合中,它就會修改名稱屬性中所指定之選擇性宣告的行為。 |
除了標準的選擇性宣告集之外,您也可以設定權杖來包含 Microsoft Graph 擴充。 如需詳細資訊,請參閱使用延伸模組將自訂資料新增至資源。
重要
系統一律使用資源 (而非用戶端) 的資訊清單來產生存取權杖。 在 ...scope=https://graph.microsoft.com/user.read...
要求中,資源是 Microsoft Graph API。 使用 Microsoft Graph API 資訊清單 (而不是用戶端的資訊清單) 來建立存取權杖。 即使變更應用程式的資訊清單,也絕不會導致 Microsoft Graph API 的權杖有所變化。 若要驗證 accessToken
變更是否生效,請針對您的應用程式 (而不是另一個應用程式) 要求權杖。
選擇性宣告支援擴充屬性和目錄擴充。 此功能適用於附加您應用程式可使用的更多使用者資訊。 例如,使用者已設定的其他識別碼或重要設定選項。 如果應用程式資訊清單要求自訂延伸模組,但 MSA 使用者登入您的應用程式,則不會傳回這些延伸模組。
使用應用程式資訊清單來設定目錄擴充的選擇性宣告時,請使用擴充的完整名稱 (格式為:extension_<appid>_<attributename>
)。
<appid>
是要求宣告的應用程式 appId (或用戶端識別碼) 的移除版本。
在 JWT 內,會以下列名稱格式發出這些宣告:extn.<attributename>
。 在 SAML 權杖內,會以下列 URI 格式發出這些宣告:http://schemas.microsoft.com/identity/claims/extn.<attributename>
本節涵蓋選擇性宣告下的設定選項,可將來自預設群組 objectID 的群組宣告所使用的群組屬性,變更為從內部部署 Windows Active Directory 同步的屬性。 您可以透過 Azure 入口網站或應用程式資訊清單來設定應用程式的群組選擇性宣告。 只會在 JWT 中針對使用者主體發出群組選擇性宣告。 服務主體不會包括在 JWT 中所發出的群組選擇性宣告中。
重要
權杖中所發出的群組數目限制為 150 (適用於 SAML 判斷提示) 和 200 (適用於 JWT,包括巢狀群組)。 如需群組限制和內部部署屬性中群組宣告重要注意事項的詳細資訊,請參閱設定應用程式的群組宣告。
完成下列步驟,以使用 Azure 入口網站來設定群組選擇性宣告:
完成下列步驟,以透過應用程式資訊清單來設定群組選擇性宣告:
選取您想要設定選擇性宣告的應用程式。
在 [管理] 底下,選取 [資訊清單]。
使用資訊清單編輯器新增下列項目:
有效值為:
例如:
"groupMembershipClaims": "SecurityGroup"
預設會在群組宣告值中發出群組物件識別碼。 若要將宣告值修改為包含內部部署群組屬性,或將宣告類型變更為角色,請使用 optionalClaims
設定,如下所示:
設定群組名稱設定的選擇性宣告。
若要權杖中的群組在選擇性宣告區段中包含內部部署群組屬性,請指定應該套用選擇性宣告的權杖類型。 您也會指定所要求選擇性宣告的名稱,以及所需的任何其他屬性。
可以列出多個權杖類型:
idToken
,代表 OIDC 識別碼權杖accessToken
適用於 OAuth 存取權杖Saml2Token
適用於 SAML 權杖。
Saml2Token
類型適用於 SAML1.1 和 SAML2.0 格式權杖。
針對每個相關的權杖類型,將群組宣告修改為使用資訊清單中的 optionalClaims
區段。
optionalClaims
結構描述如下所示:
{
"name": "groups",
"source": null,
"essential": false,
"additionalProperties": []
}
選擇性宣告範例 | 值 |
---|---|
name |
必須是 groups |
source |
未使用。 省略或指定 null。 |
essential |
未使用。 省略或指定 false。 |
additionalProperties |
其他屬性的清單。 有效的選項為 sam_account_name 、dns_domain_and_sam_account_name 、netbios_domain_and_sam_account_name 、emit_as_roles 和 cloud_displayname 。 |
在 additionalProperties
中,只需要 sam_account_name
、dns_domain_and_sam_account_name
、netbios_domain_and_sam_account_name
中的其中一個。 如果出現多個,則會使用第一個,其他都忽略。 您也可以新增 cloud_displayname
以發出雲端群組的顯示名稱。 此選項只有在 groupMembershipClaims
設定為 ApplicationGroup
時才會運作。
某些應用程式在角色宣告中需要使用者的群組資訊。 若要將宣告類型從群組宣告變更為角色宣告,請將 emit_as_roles
新增至 additionalProperties
。 角色宣告中會發出群組值。
如果使用 emit_as_roles
,則任何設定為使用者(或資源應用程式)的應用程式角色都不會在角色宣告中。
下列範例顯示群組宣告的資訊清單設定:
在 OAuth 存取權杖中,以 dnsDomainName\sAMAccountName
格式發出 groups 作為群組名稱。
"optionalClaims": {
"accessToken": [
{
"name": "groups",
"additionalProperties": [
"dns_domain_and_sam_account_name"
]
}
]
}
在 SAML 和 OIDC 識別碼權杖中,以 netbiosDomain\sAMAccountName
格式發出要傳回的群組名稱作為角色宣告。
"optionalClaims": {
"saml2Token": [
{
"name": "groups",
"additionalProperties": [
"netbios_domain_and_sam_account_name",
"emit_as_roles"
]
}
],
"idToken": [
{
"name": "groups",
"additionalProperties": [
"netbios_domain_and_sam_account_name",
"emit_as_roles"
]
}
]
}
針對內部部署已同步處理群組,以 sam_account_name
格式發出群組名稱,並為指派至應用程式的群組,發出 SAML 和 OIDC 識別碼權杖中雲端群組的 cloud_display
名稱。
"groupMembershipClaims": "ApplicationGroup",
"optionalClaims": {
"saml2Token": [
{
"name": "groups",
"additionalProperties": [
"sam_account_name",
"cloud_displayname"
]
}
],
"idToken": [
{
"name": "groups",
"additionalProperties": [
"sam_account_name",
"cloud_displayname"
]
}
]
}
有多個選項可讓您更新應用程式身分識別設定上的屬性,以啟用和設定選擇性宣告:
在下列範例中,Azure 入口網站和資訊清單用來將選擇性宣告新增至適用於您應用程式的存取權、識別碼和 SAML 權杖。 不同的選擇性宣告會新增至應用程式可接收的每種權杖類型:
<upn>_<homedomain>#EXT#@<resourcedomain>
) 包含同盟使用者的 UPN。auth_time
宣告。skypeId
目錄結構描述延伸模組 (在此範例中,此應用程式的應用程式識別碼為 ab603c56068041afb2f6832e2a17e237
)。 SAML 權杖會將 Skype ID 公開為 extension_ab603c56068041afb2f6832e2a17e237_skypeId
。在 Azure 入口網站中設定宣告:
在資訊清單中設定宣告:
選取您想要設定選擇性宣告的應用程式。
在 [管理] 底下,選取 [資訊清單] 以開啟內嵌資訊清單編輯器。
您可以使用此編輯器直接編輯資訊清單。 資訊清單遵循 Application 實體的結構描述,而且資訊清單儲存時會自動格式化。 新元素會新增至 optionalClaims
屬性。
"optionalClaims": {
"idToken": [
{
"name": "upn",
"essential": false,
"additionalProperties": [
"include_externally_authenticated_upn"
]
}
],
"accessToken": [
{
"name": "auth_time",
"essential": false
}
],
"saml2Token": [
{
"name": "extension_ab603c56068041afb2f6832e2a17e237_skypeId",
"source": "user",
"essential": true
}
]
}
資訊清單更新完成後,請選取 [儲存] 以儲存資訊清單。
應用程式可以發出最多10個擴充屬性作為選擇性宣告。
訓練
認證
Microsoft Certified: Identity and Access Administrator Associate - Certifications
示範 Microsoft Entra ID 的功能,以現代化身分識別解決方案、實作混合式解決方案,以及實作身分識別治理。