通过Microsoft Graph API为Azure AD应用分配自定义声明提供者及查询配置声明
解决方案:Azure AD自定义身份验证扩展集成的两个问题
问题1:通过Microsoft Graph API为Azure AD应用分配自定义声明提供者
自定义声明提供者的分配需通过**声明映射策略(Claim Mapping Policy)**关联到目标应用的服务主体(Service Principal),属于SAML SSO配置流程的核心环节,具体步骤如下:
创建声明映射策略
先定义包含自定义声明规则的策略,示例请求:POST https://graph.microsoft.com/v1.0/policies/claimMappingPolicies Content-Type: application/json { "definition": [ "{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\",\"ClaimsSchema\":[{\"Source\":\"user\",\"ID\":\"extension_{yourExtensionId}_customClaim\",\"SamlClaimType\":\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/customclaim\"}]}}" ], "displayName": "Custom Claim Mapping Policy", "isOrganizationDefault": false }替换
{yourExtensionId}为你创建的自定义身份验证扩展ID。绑定策略到目标应用服务主体
使用PATCH请求更新目标应用的服务主体,将策略关联到claimMappingPolicies导航属性:PATCH https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipalId} Content-Type: application/json { "claimMappingPolicies@odata.bind": [ "https://graph.microsoft.com/v1.0/policies/claimMappingPolicies/{policyId}" ] }替换
{servicePrincipalId}为目标应用的服务主体ID,{policyId}为上一步创建的策略ID。所需权限:需具备
Application.ReadWrite.All或Directory.ReadWrite.All应用权限(或对应委派权限)。
问题2:程序化获取应用已配置的属性和声明(含自定义声明提供者)
可通过以下3个Microsoft Graph API端点获取相关信息:
获取应用SAML SSO核心配置
调用该端点获取服务主体的联邦配置,包含声明映射、断言属性等关键内容:GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipalId}/federationConfiguration获取关联的自定义声明映射策略
直接拉取绑定到服务主体的声明策略,返回的JSON数据包含自定义声明的规则细节,便于程序化处理:GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipalId}/claimMappingPolicies获取应用SAML元数据
若需解析元数据中的声明信息,可调用该端点获取完整XML格式的元数据,自行解析其中的Attribute相关节点:GET https://graph.microsoft.com/v1.0/servicePrincipals/{servicePrincipalId}/getFederationMetadata
内容的提问来源于stack exchange,提问作者tamar
相关产品推荐
相关产品推荐

