Azure AD B2C使用图谱API创建社交帐户创建用户

时间:2020-11-04 16:55:07

标签: microsoft-graph-api azure-ad-b2c

我正在尝试在不使用注册用户流的情况下为B2C租户上的Microsoft登录创建用户社交帐户。运行注册用户流程并注册Microsoft帐户后,将在租户中创建一个源为“ Microsoft帐户”的用户。

我一直在使用创建用户发布请求来尝试使用Microsoft Graph API,其中我可以创建一个可以正常工作的本地帐户,但是使用下面的示例创建使用B2C登录的Microsoft用户时遇到了问题。我认为我所创建的Microsoft帐户没有有效的issuerAssignedId,并且我实际上并不是在尝试迁移现有帐户。用户记录是在发布请求运行时在B2C中创建的,但是当我尝试使用Microsoft帐户登录时,它会使用ADB2C99002进行响应:用户不存在。

https://docs.microsoft.com/en-us/graph/api/user-post-users?view=graph-rest-1.0&tabs=http#example

不是精确值,而是我正在使用的有效负载示例:

{
  "displayName": "Test Name",
  "identities": [
    {
      "signInType": "emailAddress",
      "issuer": "mytenant.onmicrosoft.com",
      "issuerAssignedId": "test@outlook.com"
    },
    {
      "signInType": "federated",
      "issuer": "live.com",
      "issuerAssignedId": "test@outlook.com"
    }
  ],
  "passwordProfile" : {
    "password": "password-value",
    "forceChangePasswordNextSignIn": false
  },
  "passwordPolicies": "DisablePasswordExpiration"
}

有没有办法可以做到这一点?谢谢。

1 个答案:

答案 0 :(得分:0)

我认为我没有针对Microsoft的有效IssuerAssignedId 我正在创建的帐户,但实际上并没有尝试迁移 现有帐户。

您不能使用Microsoft Graph API创建不存在的MSA。

尽管在运行发布请求时在B2C中创建了用户记录,但它只是您所提到的记录。

真实身份认证过程由MSA而非B2C完成。

在这种情况下,AADB2C99002: User does not exist是预期的行为。

您可以在调用此Microsoft图形终结点时设置不存在的MSA,但不会在MSA IDP端创建MSA。因此您无法使用它登录。

最佳做法是预先创建MSA,并将其用于此Graph调用。