Использование API-интерфейса Azure AD Graph для создания пользователя в Azure AD B2C - PullRequest
2 голосов
/ 21 октября 2019

Мое приложение предназначено для добавления пользователя в Azure AD B2C с помощью API-интерфейса Azure AD Graph. Я также обработал случай, когда я бы вызвал API добавления пользовательского графа с идентификатором электронной почты, который уже существует в AD. Я искал сообщение об ошибке в теле ответа, чтобы справиться с этим. Произошли ли какие-либо изменения в ответном сообщении?

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."
        }
    }
}

Есть ли разница между двумя сообщениями об ошибках. Так как нет кода ошибки, я жестко запрограммировал все сообщение об ошибке. Теперь, когда в сообщении есть небольшое изменение, я должен обновить свой код. Как я могу справиться с этим лучше?

1 Ответ

0 голосов
/ 21 октября 2019

Я не проверял, подтверждали ли они сообщение об ошибке, но меня это совсем не удивило. UserPrincipalName может исходить из базового AAD, может быть, MS изменила реализацию B2C, и теперь она выдает сообщение об ошибке оттуда?

В вашем конкретном случае, лучшим вариантом может быть проверка того, существует ли адрес электронной почты вB2C непосредственно перед вызовом API для создания нового пользователя. Это дополнительный вызов API, но он не должен иметь большого значения, если вы не создаете много пользователей одновременно, например, в пакете. Вам все равно придется обрабатывать ошибку вызова создания пользователя, но если это произойдет, вы можете просто вернуть общее сообщение об ошибке.

...