You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure门户为Microsoft Entra ID用户添加自定义声明?

操作方法说明

一、先创建自定义用户属性

因为Microsoft Entra ID默认没有ExternalServiceUserId和ExternalServicePassword这两个属性,得先创建目录扩展属性才能在门户编辑:

  1. 登录Azure门户,进入Microsoft Entra ID > 应用注册,选中你的Web应用(未关联的话先注册一个)。
  2. 进入应用的扩展属性页面,点击添加扩展属性。
  3. 分别创建两个属性:
    • 名称填ExternalServiceUserId,类型选字符串,按需勾选是否允许用户自行编辑,保存。
    • 名称填ExternalServicePassword,同样选字符串类型。注意:直接存储密码存在安全风险,后续建议改用Azure密钥保管库,这里先按需求操作。
  4. 保存后,属性会生成带前缀的完整名称,格式为extension_<应用客户端ID去掉横杠>_属性名,请记录该名称,后续调用Graph API时需要用到。

二、在门户为用户设置属性值

  1. 进入Microsoft Entra ID > 用户,找到目标用户(比如User1、User2)。
  2. 打开用户的配置文件页面,拉到最底部的扩展属性区域,点击编辑。
  3. 在弹出的属性列表中找到刚创建的两个属性,输入对应的值(比如User1填"someUserId"和"somePassword"),保存即可。

三、让Web应用登录时获取属性作为声明(可选)

如果需要用户登录Web应用时,这些属性以声明形式出现在SAML/OIDC令牌中,需配置应用的声明映射:

  1. 回到应用注册页面,进入令牌配置 > 添加声明。
  2. 选择添加自定义声明,类型选目录扩展,选中你创建的两个属性添加到声明列表,可将声明名称设为与属性名一致,方便识别。
  3. 保存配置后,用户登录时令牌中就会包含这两个自定义声明。

四、用Microsoft Graph API读取属性值

调用Graph API的用户详情接口,指定要获取的扩展属性即可:

请求示例

GET https://graph.microsoft.com/v1.0/users/{用户ID}?$select=id,displayName,extension_<你的应用客户端ID去横杠>_ExternalServiceUserId,extension_<你的应用客户端ID去横杠>_ExternalServicePassword

响应示例

{
  "id": "user1的ID",
  "displayName": "User1",
  "extension_xxxxxx_ExternalServiceUserId": "someUserId",
  "extension_xxxxxx_ExternalServicePassword": "somePassword"
}

权限要求

  • 委派权限:User.Read可获取当前登录用户的属性;User.Read.All能读取所有用户的属性。
  • 应用权限:需User.Read.All权限,适合后台服务调用场景。

安全提示

直接将密码存储在用户属性中存在泄露风险,建议将密码存入Azure密钥保管库,用户属性仅存储密钥保管库的密钥ID,后续通过Graph API拿到ID后再从密钥保管库读取密码,提升安全性。

内容的提问来源于stack exchange,提问作者Luka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:32:45