使用 Azure AD Graph API 在 Azure AD B2C 中创建用户
Using Azure AD Graph API to create a User in Azure AD B2C
我的应用程序旨在使用 Azure AD Graph API 将用户添加到我的 Azure AD B2C。我还处理了使用 AD 中已存在的电子邮件 ID 调用添加用户图 API 的情况。我正在寻找响应正文中的错误消息来处理这个问题。 w.r.t 响应消息有任何变化吗?
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."
}
}
}
这两个错误信息有什么区别吗?由于没有任何错误代码,我硬编码了整个错误消息。现在消息略有变化,我必须更新我的代码。我怎样才能更好地处理这个问题?
我没有检查以确认他们是否更改了错误消息,但如果他们更改了,我一点也不会感到惊讶。 userPrincipalName 可能来自底层 AAD,也许 MS 更改了 B2C 实现,现在它从那里公开一条错误消息?
在您的特定情况下,更好的选择可能是在调用 API 创建新用户之前检查 B2C 中是否存在电子邮件地址。这是一个额外的 API 调用,但除非您一次创建许多用户,否则它应该没什么大不了的,例如在一批。您仍然需要处理用户创建调用失败,但如果发生这种情况,您可以 return 一条通用错误消息。
我的应用程序旨在使用 Azure AD Graph API 将用户添加到我的 Azure AD B2C。我还处理了使用 AD 中已存在的电子邮件 ID 调用添加用户图 API 的情况。我正在寻找响应正文中的错误消息来处理这个问题。 w.r.t 响应消息有任何变化吗?
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."
}
}
}
这两个错误信息有什么区别吗?由于没有任何错误代码,我硬编码了整个错误消息。现在消息略有变化,我必须更新我的代码。我怎样才能更好地处理这个问题?
我没有检查以确认他们是否更改了错误消息,但如果他们更改了,我一点也不会感到惊讶。 userPrincipalName 可能来自底层 AAD,也许 MS 更改了 B2C 实现,现在它从那里公开一条错误消息?
在您的特定情况下,更好的选择可能是在调用 API 创建新用户之前检查 B2C 中是否存在电子邮件地址。这是一个额外的 API 调用,但除非您一次创建许多用户,否则它应该没什么大不了的,例如在一批。您仍然需要处理用户创建调用失败,但如果发生这种情况,您可以 return 一条通用错误消息。