我正在尝试在不使用注册用户流的情况下为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"
}
有没有办法可以做到这一点?谢谢。
答案 0 :(得分:0)
我认为我没有针对Microsoft的有效IssuerAssignedId 我正在创建的帐户,但实际上并没有尝试迁移 现有帐户。
您不能使用Microsoft Graph API创建不存在的MSA。
尽管在运行发布请求时在B2C中创建了用户记录,但它只是您所提到的记录。
真实身份认证过程由MSA而非B2C完成。
在这种情况下,AADB2C99002: User does not exist
是预期的行为。
您可以在调用此Microsoft图形终结点时设置不存在的MSA,但不会在MSA IDP端创建MSA。因此您无法使用它登录。
最佳做法是预先创建MSA,并将其用于此Graph调用。