【问题标题】:Using Azure AD Graph API to create a User in Azure AD B2C使用 Azure AD Graph API 在 Azure AD B2C 中创建用户
【发布时间】:2019-10-21 12:04:38
【问题描述】:

我的应用程序旨在使用 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": "TestGraphApiCreatedUser@TestGraphApiCreatedUser.com"
    }],
  "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】:

    我没有检查以确认他们是否更改了错误消息,但如果他们这样做了,我一点也不感到惊讶。 userPrincipalName 可能来自底层 AAD,也许 MS 更改了 B2C 实现,现在它从那里暴露了一条错误消息?

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

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 2018-01-16
      • 1970-01-01
      相关资源
      最近更新 更多