#azure-active-directory #azure-ad-b2c
Вопрос:
Можно ли предварительно создать федеративных пользователей в Azure B2C с помощью API Graph? Вот такой сценарий:
Я добавил в свой клиент B2C арендатора Azure AD в качестве IdP. Однако я не хочу, чтобы федеративные пользователи могли зарегистрироваться. Я хочу, чтобы они могли войти в систему только в том случае, если они уже присутствуют в каталоге B2C. Поэтому, если это не так, они получат сообщение об ошибке. Поэтому я подумал, что мог бы создать федеративных пользователей, используя вместо этого график. Ниже приведен текст запроса, который я попытался использовать, но я получаю следующую ошибку, в которой говорится, что UPN должен использовать один из доменов в организации. Возможно ли достичь того, чего я хочу достичь с помощью Graph? Если не с помощью Graph API, то как я могу это сделать? Вызов API REST в пользовательской политике нежелателен.
{
"givenName": "John",
"identities": [
{
"signInType": "federated",
"issuer": "abc.com",
"issuerAssignedId": "jdoe@abc.com"
}
],
"surName": "Doe",
"mail": "jdoe@abc.com",
"accountEnabled": true,
"displayName": "John Doe",
"mailNickname": "jdoe",
"userPrincipalName": "jdoe@abc.com",
"passwordPolicies": "DisablePasswordExpiration"
}
{
"error": {
"code": "Request_BadRequest",
"message": "The domain portion of the userPrincipalName property is invalid. You must use one of the verified domain names in your organization.",
"innerError": {
"date": "2020-08-05T03:45:26",
"request-id": "xxxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx"
},
"details": [
{
"target": "userPrincipalName",
"code": "InvalidValue"
}
]
}
}
Ответ №1:
Удаление "userPrincipalName": "jdoe@abc.com",
устранит эту проблему.
Microsoft Graph, похоже, не позволяет нам устанавливать userPrincipalName
параметры при создании пользователя для Azure B2C. Он будет генерировать userPrincipalName
as {object id}@abc.com
.
И тогда вы могли бы обновить userPrincipalName
.
PATCH https://graph.microsoft.com/v1.0/users/{object id}
{"userPrincipalName":"jdoe@abc.com"}
Комментарии:
1. Спасибо тебе @Allen! Удаление имени пользователя позволило мне выполнить запрос. Но ИСПРАВЛЕНИЕ не было разрешено из-за той же ошибки, о которой я сообщал ранее. Есть ли способ обойти это?
2. Если нет, я отмечу ваш ответ правильным. На всякий случай еще кто-то приходит через это, чтобы предотвратить различные учетные записи создаются, когда я пытался авторизоваться с помощью учетной записи, мне пришлось изменить имена часть «идентификаторы»: [ { «signInType»: «федеративные», «эмитент»: » login.microsoftonline.com {tenant_id}/В2.0″, «issuerAssignedId»: «{tobjid_in_home_tenant}» } ]
3. @Rock я могу использовать
PATCH
для обновленияUPN
. Не могли бы вы, пожалуйста, поделиться полнымPATCH
запросом?4. [Арендатор B2C: xyz.onmicrosoft.com] ПАТЧ graph.microsoft.com/beta/object_id {«Имя пользователя»:»jdoe@abc.com»} abc.com не является проверенным доменом в xyz.onmicrosoft.com отсюда и ошибка.
5. @Rock Вы должны добавить abc.com как ВПЛ в B2C, следуя docs.microsoft.com/en-us/azure/active-directory-b2c/. … Если abc не является проверенным доменом, я не думаю, что вы сможете его ИСПРАВИТЬ.