Я открыл заявку в службу поддержки в Microsoft AzureAD. Я получил ответ от инженера Microsoft:
Я посмотрел проблему, с которой вы столкнулись, и настройки приложения. Вы устанавливаете Имя ID как атрибут почты и в формате электронной почты. Если я понимаю, что это неправильно, пожалуйста, исправьте меня.
В случае, если у пользователя нет значения в почтовом атрибуте, тогда Azure AD отправит постоянный формат для идентификатора имени и установит в нем случайное значение ,
Поэтому, пожалуйста, проверьте, имеет ли пользователь значение в своем почтовом атрибуте.
Действительно! Мой проверенный пользователь не имеет атрибута электронной почты! По словам сотрудника службы поддержки Microsoft, он сказал, что на портале Azure мы не можем сказать, что у протестированного участника есть электронная почта или нет:
![![image.png (116.9 kB)](https://files.esa.io/uploads/production/attachments/2264/2020/03/06/45820/9d91c9d7-ed6c-470a-948d-82203c11faea.png)](https://i.stack.imgur.com/V1u44.png)
Он сказал, что мы можем протестировать с помощью PowerShell или Azure CLI:
$ Get-AzureADUser -ObjectId <Object ID of the user>
# or
$ az ad user show --id <Object ID of the user>
{
...
"jobTitle": null,
"lastDirSyncTime": null,
"legalAgeGroupClassification": null,
"mail": null,
"mobile": null,
"objectId": ....
}
У тестируемого пользователя нет почтового атрибута. Так что поведение ожидается.
Но мне все еще интересно, какое значение возвращает IdP в потоке, инициированном SP. Это действительно похоже на значение mail: user-email-address@foo.bar
Оказывается, что когда mail имеет значение null, вместо него возвращается атрибут userPrincipalName
.
Если мы хотим, чтобы член-арендатор существовал с атрибутом mail, то арендатор должен подписаться на почтовую службу или пакет, такой как Office 365, Exchange Online и т. д. c. В этом случае мы не подписываемся ни на что. Я думал, что просто создайте пользователя в Azure, и у этого пользователя уже есть электронная почта! Просто чтобы убедиться, я go на outlook.com и пытаюсь войти. Вот что я получил:
![enter image description here](https://i.stack.imgur.com/8qaRG.png)