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

如何通过Graph API在Azure B2C中预创建联合身份用户

Azure B2C预创建带外部联邦身份用户操作方案

创建用户时直接配置联邦身份

调用Graph API的POST /users接口,在请求体中直接携带完整的identities数组即可完成预创建,注意每个身份条目必须完整包含signInType、issuer、issuerAssignedId三个必填字段,你提供的示例存在引号缺失、逗号缺失的语法问题,修正后的请求体示例如下:

{
    "displayName": "User Name",
    "givenName": "User",
    "surname": "Name",
    "userType": "Member",
    "accountEnabled": true,
    "passwordProfile": {
        "forceChangePasswordNextSignIn": false,
        "password": "符合B2C复杂度要求的临时密码"
    },
    "userPrincipalName": "cpim_uuid@mytenant.onmicrosoft.com",
    "identities":[
        {
            "signInType" : "federated",
            "issuer": "https://login.company.com/auth/realms/realm-qt",
            "issuerAssignedId" : "user.name@company.com"
        },
        {
            "signInType" : "userPrincipalName",
            "issuer": "mytenant.onmicrosoft.com",
            "issuerAssignedId" : "cpim_uuid@mytenant.onmicrosoft.com"
        }
    ]
}

为已存在用户新增联邦身份

如果对应账号已经在B2C租户中创建,调用PATCH /users/{用户ID/用户主体名称}接口更新identities字段即可,注意:identities是全量覆盖字段,更新时必须携带该用户所有已存在的身份条目+新增的联邦身份条目,否则原有身份标识会被直接删除,请求体示例如下:

{
    "identities":[
        // 保留原有所有身份条目
        {
            "signInType" : "userPrincipalName",
            "issuer": "mytenant.onmicrosoft.com",
            "issuerAssignedId" : "cpim_uuid@mytenant.onmicrosoft.com"
        },
        // 新增的联邦身份条目
        {
            "signInType" : "federated",
            "issuer": "https://login.company.com/auth/realms/realm-qt",
            "issuerAssignedId" : "user.name@company.com"
        }
    ]
}

核心注意事项

  • issuer字段值必须和B2C租户中配置的对应外部IDP的issuer完全一致,大小写、路径均不能有偏差,否则用户后续登录时无法匹配到预创建的账号
  • issuerAssignedId字段值必须和外部IDP登录时返回的用户唯一标识(通常为sub声明)完全一致
  • 单个用户支持配置多个federated类型的身份条目,可对应多个不同的外部身份提供商

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:03