使用Azure AD Graph API在Azure AD B2C中创建用户

问题描述 投票:2回答:1

我的应用程序旨在使用Azure AD Graph API将用户添加到我的Azure AD B2C。我还处理了要使用AD中已经存在的电子邮件ID调用添加用户图API的情况。我在响应正文中寻找错误消息以解决此问题。响应消息是否有任何更改?

POST
https://graph.windows.net/{tenant}/users?api-version=1.6

请求正文:

{
  "accountEnabled": true,
  "signInNames": [
    {
        "type": "EmailAddress",
        "value": "[email protected]"
    }],
  "displayName": "TestGraphApiCreatedUser",
  "mailNickname": "TestGraphApiCreatedUser",
  "passwordProfile" : {
    "forceChangePasswordNextLogin": false,
    "password": "vhkjds#fceu456VCHU"
  },
  "creationType": "LocalAccount",
  "passwordPolicies": "DisablePasswordExpiration"
}

如果用户已经使用给定的电子邮件地址存在,我之前遇到的错误是

{
    "odata.error": {
        "code": "Request_BadRequest",
        "message": {
            "lang": "en",
            "value": "Another object with the same value for property signInName already exists."
        }
    }
}

现在,对于相同的流程,我将遇到错误:

{
    "odata.error": {
        "code": "Request_BadRequest",
        "message": {
            "lang": "en",
            "value": "Another object with the same value for property userPrincipalName already exists."
        }
    }
}

两个错误消息之间是否有任何区别。由于没有任何错误代码,因此我对整个错误消息进行了硬编码。现在,消息中有微小的变化,我必须更新代码。如何更好地处理此问题?

azure-active-directory azure-ad-b2c azure-ad-graph-api
1个回答
0
投票

我没有检查确认他们是否更改了错误消息,但是如果他们更改了错误消息,这根本不会令我感到惊讶。 userPrincipalName可能来自基础AAD,也许MS更改了B2C实现,现在它从那里公开了错误消息?

在您的特定情况下,更好的选择可能是在调用API创建新用户之前检查B2C中是否存在电子邮件地址。这是一个额外的API调用,但不要紧,除非您一次创建多个用户,例如一批您仍然必须处理用户创建调用失败,但是如果发生这种情况,您可能只返回通用错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.