如何用PowerShell读取SAML企业应用的Attribute & Claims配置?
读取SAML企业应用的Attribute & Claims配置
问题原因
Get-MgBetaServicePrincipalClaimMappingPolicy仅返回关联到服务主体的自定义声明映射策略,而Azure门户中默认配置的SAML属性声明,大多存储在服务主体的samlSingleSignOnSettings属性中,而非独立的声明映射策略,这是导致你返回空值的核心原因。
解决方案
1. 读取默认配置的SAML属性声明
使用以下PowerShell命令直接获取服务主体的SAML单点登录设置,其中包含门户中配置的Attribute & Claims:
# 替换为你的企业应用显示名称 $appDisplayName = "你的企业应用名称" # 获取目标服务主体的SAML配置 $servicePrincipal = Get-MgBetaServicePrincipal -Filter "DisplayName eq '$appDisplayName'" -Select "Id, DisplayName, SamlSingleSignOnSettings" # 输出属性声明配置 $servicePrincipal.SamlSingleSignOnSettings.AssertionAttributes
2. 读取自定义声明映射策略(若已配置)
如果你确实创建并关联了自定义声明映射策略,需指定服务主体ID才能正确读取:
# 替换为你的服务主体ID $spId = "服务主体ID" # 获取关联的声明映射策略 Get-MgBetaServicePrincipalClaimMappingPolicy -ServicePrincipalId $spId
权限检查
确保你的Graph权限已覆盖:
Application.Read.All:允许读取服务主体的基本信息及SAML配置Policy.Read.All:允许读取自定义声明映射策略
若仍无法读取,可尝试升级为Application.ReadWrite.All(仅在必要时使用,遵循最小权限原则)
内容的提问来源于stack exchange,提问作者rafal fraczek
相关产品推荐
相关产品推荐

