将Azure AD配置为SAML身份提供商:如何设置SP唯一标识符
解决Azure AD中设置user.extensionattribute1并用于SAML NameID的问题
嘿,我来帮你搞定这个问题!你需要把SP的唯一标识符存到Azure AD用户的extensionattribute1里,再把这个属性作为SAML响应的NameID发送,对吧?我分步骤给你说清楚:
一、给用户设置extensionattribute1的值
方法1:Azure门户手动单用户配置
这个适合给个别用户设置:
- 登录Azure门户,找到Azure Active Directory
- 左边菜单点用户,找到你要配置的那个用户,点进他的详情页
- 切换到属性标签页,往下翻到扩展属性区域,这里能看到extensionattribute1到extensionattribute15
- 把你的SP唯一标识符填到extensionattribute1的输入框里,最后点保存就搞定了
方法2:PowerShell批量配置(多用户场景更高效)
如果要给一堆用户设置,用PowerShell批量操作更方便:
- 先安装并连接Azure AD模块:
# 安装模块(如果没装过的话) Install-Module AzureAD -Force # 连接到Azure AD Connect-AzureAD
- 给单个用户设置:
Set-AzureADUser -ObjectId "你的用户UPN,比如user@yourdomain.com" -ExtensionProperty @{extensionattribute1="这里填SP的唯一标识符"}
- 批量导入设置(比如从CSV文件读取):
假设你有个CSV文件,列是UserPrincipalName和SPUniqueId,可以这么写:
$userList = Import-Csv -Path "C:\你的用户列表.csv" foreach ($user in $userList) { Set-AzureADUser -ObjectId $user.UserPrincipalName -ExtensionProperty @{extensionattribute1=$user.SPUniqueId} }
二、配置SAML响应使用extensionattribute1作为NameID
接下来要让Azure AD在SAML登录响应里把这个属性作为NameID发出去:
- 回到Azure AD的企业应用,找到你已经配置好SSO的那个应用
- 左边菜单点单一登录,在SAML配置区域点编辑用户属性与声明
- 找到名称ID的那条声明,点击编辑按钮
- 在源属性的下拉菜单里,找到并选中
user.extensionattribute1 - 保存所有配置,然后测试一下SAML登录,就能看到NameID的值就是你设置的SP唯一标识符啦
补充一句:你用的是带Office 365订阅的试用版Azure AD,这些extensionattribute是默认开放使用的,不需要额外去扩展AD架构,直接就能用~
内容的提问来源于stack exchange,提问作者Ali Ahsan
相关产品推荐
相关产品推荐

