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

如何编程获取个人Microsoft账户ID(对应Entra的issuerAssignedId)

获取个人Microsoft账户的联合身份ID用于Entra用户创建

要获取Entra中联合身份用户的issuerAssignedId(对应https://login.live.com发行者的那个值),你可以通过以下两种方式实现:

1. 从OIDC认证的ID Token中提取sub声明

当引导个人Microsoft账户(MSA)用户完成OIDC认证流程时,确保请求的scope包含openid。认证成功后,你会收到一个JWT格式的ID Token,解码该Token后,其中的sub字段就是你需要的issuerAssignedId值。

示例解码后的ID Token片段:

{
  "sub": "AAAAAAAAAAAAAAAAAAAAAskdfnmlskdhfsldfsdjfb",
  "iss": "https://login.live.com",
  // 其他声明...
}

这个sub值是MSA针对你的应用的唯一固定标识符,与Entra自动创建用户时填充的issuerAssignedId完全一致。

2. 调用Microsoft Graph API获取MSA的Object ID

如果你需要通过API直接获取该ID,可以在用户用MSA登录后,使用针对MS Graph的访问令牌调用GET /me接口。此时返回的id字段就是MSA的全局唯一Object ID,同样对应Entra中的issuerAssignedId。

注意:确保你的Entra应用已配置为支持个人Microsoft账户登录,并且获取访问令牌时指定的资源为https://graph.microsoft.com,同时请求的scope包含User.Read。调用返回的示例响应:

{
  "id": "AAAAAAAAAAAAAAAAAAAAAskdfnmlskdhfsldfsdjfb",
  "userPrincipalName": "xxx@hotmail.com",
  // 其他用户信息...
}

如果之前调用/me返回的是Entra相关的ID,大概率是因为你使用的是针对Entra租户的访问令牌,而非针对MS Graph的MSA令牌。调整认证请求的资源和scope即可解决这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:07:33