Для клиента у нас есть решение AAD B2C, и мы создали инструмент импорта, который собирает пользователей из источника и создает их в AD B2C.
Это делается с помощью API-интерфейса Active Directory Graph,но у нас возникает проблема, когда дело доходит до потока забытых паролей.
{
"accountEnabled": true,
"signInNames": [
{
"type": "userName",
"value": "****"
}
],
"passwordPolicies" : "DisablePasswordExpiration, DisableStrongPassword",
"passwordProfile": {
"password": "SomePassword",
"forceChangePasswordNextLogin": false
},
"otherMails": ["****@****.net"],
"creationType": "LocalAccount",
"displayName": "*****",
"givenName": "*****",
"surname": "***** *****",
"userPrincipalName": "PLH@vandeputprd.onmicrosoft.com",
"extension_extensionID_ClientId": "***",
"extension_extensionID_Language": "N"
}
Проблема в том, что когда мы запрашиваем подтверждение по электронной почте, это не удается, так как поле почты не установлено. Если мы попытаемся установить это, API вернет, что это поле доступно только для чтения
{
"odata.error": {
"code": "Request_BadRequest",
"message": {
"lang": "en",
"value": "Property 'mail' is read-only and cannot be set."
},
"requestId": "97b360eb-052e-4c16-8706-468b72ae1ebe",
"date": "2019-10-11T10:50:01"
}
}
Мы можем установить его вручную на портале AD B2C:
Мы пытались использовать более новый Microsoft Graph Api и изучать сценарии powershell.
С powershell я смог прочитать его как StrongAuthenticationUserDetails , но не смог установить его.
Вот некоторые варианты, о которых мы думаем:
- Ищите способ заполнить это программно
- Ищите способ задать это при первом входе в систему
- Ищите отправкуприглашение вместо предварительного заполнения базы пользователей
Последний вариант требует большой работы, что финансово не вариант.
Есть ли у кого-то какие-то идеи о том, как мы можем сделать / решить эту проблему