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

如何向Azure AD UserExtension添加多值?文档与JWT解析存差异

如何在Azure AD UserExtension中存储多值数组?

Azure AD的自定义UserExtension确实仅支持字符串类型,官方文档明确了这一限制,所以没法直接存储原生数组类型。

你提到解析JWT时看到扩展值是数组形式,大概率是解析端自动把存储的JSON字符串反序列化成了数组,但本质上Azure AD里存的还是字符串格式。

目前你采用的将JSON数组序列化为字符串存入的方案,是当前最可行且通用的解决办法,代码示例如下:

Set-AzureADUserExtension -ObjectId $UserId -ExtensionName $ExtensionName -ExtensionValue  '["Val1", "val2", "val3"]' 

读取时只需要把字符串反序列化为数组即可,这种方式兼容性极强,不管是后端服务还是前端应用,只要能处理JSON就能轻松解析。

另外提两个不推荐的替代思路,供你参考:

  • 用多个独立的扩展属性分别存单个值:但这样会占用更多扩展字段,后续新增值还要创建新属性,扩展性极差。
  • 尝试使用Azure AD原生多值属性:但自定义扩展属性不支持多值类型,只有User对象自带的少数属性(比如proxyAddresses)支持多值,这条路走不通。

综上,保持JSON字符串序列化的方案是官方限制下最优的选择,既灵活又易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:27:01