Здесь, для всеобщей пользы, я публикую ответ после консультации со службой поддержки Microsoft.
Существует 2 возможных проблемы, которые могут привести к невозможности пригласить гостя в Azure AD:
- Пользователи не удалены должным образом.При поиске электронной почты пользователя она может не отображаться в пользовательском интерфейсе, но все равно не может быть приглашена.Отчасти это связано с тем, что пользовательский интерфейс имеет некоторые ограниченные возможности поиска (точные / начинаются с адреса электронной почты или только имени).
Решение : Вы можете использовать graph api для запроса пользователя.Вам определенно следует попытаться найти пользователя на основе поля OtherMails
.
Пользователь, которого вы пытаетесь пригласить, принадлежит клиенту Azure AD, который также является одним из поставщиков удостоверений, которому доверяют ваш Azure AD B2C.Это является причиной проблемы с моей реализацией, которую я обнаружил.
Когда пользователь впервые использует свои учетные данные Azure AD, вошедшие в мое приложение (Azure AD B2C), автоматически создается «социальная учетная запись» вAzure AD B2C.Эта учетная запись создается с
UserPrincipalName
в формате
cpim_guid@yourtenant.onmicrosoft.com
и
AccountEnabled
false (отключено).Их адрес электронной почты Azure AD будет находиться в собственности
OtherMails
.Вот почему вы не можете найти пользователя по его электронной почте в пользовательском интерфейсе, и вам нужно знать точное имя, которое они используют в своей Azure AD, чтобы найти его.
Решение : Если вы можете найти в пользовательском интерфейсе, обычно их MemberType
это член Source
это External Azure AD
, вы можете просто удалить пользователя.Если нет, используйте graph api для запроса их электронной почты в свойстве OtherMails
.Затем немедленно пригласите пользователя в качестве гостя.У них не должно возникнуть проблем при повторном входе в приложение B2C, так как social account
будет создан автоматически.
Примечание . Убедитесь, что вы не используете политики Azure AD B2C, которые добавляют дополнительные атрибуты к пользователю, входящему в систему с использованием социальной учетной записи.Если да, вам понадобится другая стратегия удаления пользователя, приглашения в качестве гостя, воссоздания социальной учетной записи и восстановления дополнительных атрибутов.