Возможно ли в Azure AD B2C назначить пользователю специальный идентификатор (например, ExternalAzureAD) при входе пользователя в систему? В настоящее время все пользователи хранятся с адресом электронной почты в качестве удостоверения личности.
Я попробовал поискать в Интернете, но пока не прочитал ответ.





Когда вы входите в систему через Entra ID, вы получаете федеративную запись в массиве B2C Identity.
Вы можете добавить другие типы в этот массив через Graph API.
По сути, вы связываете аккаунты.
Прямо сейчас он просто создает локальную учетную запись в моем b2c-каталоге без ссылки на мою личность intra-id.
Вам нужно будет добавить соответствующую социальную личность в массив идентификаторов; однако это получается из sub, переданного от федеративного клиента, поэтому вы должны заранее знать, что это будет за sub. Легче проявить реакцию и выполнить автоматическую привязку учетной записи во время входа в систему.
@bolt-io да, дело в том, что сотрудникам компании вообще не нужна локальная учетная запись - они регистрируются с помощью технического профиля openIdConnect, и с помощью этой регистрации я хочу автоматически добавлять идентификатор компании в фоновом режиме. Они никогда не введут свой адрес электронной почты один раз.
Для моих сотрудников действия должны быть следующими: 1) Нажмите кнопку «{Название компании}» 2) Войдите в систему с использованием корпоративного идентификатора (пользователя EntraId) 3) Создайте локальную учетную запись в b2c с уже добавленным идентификатором EntraIdUser 4) Перенаправление в приложение
@rbrayb Есть ли разница, если идентификатор пользователя отображается как «несколько» (надеюсь, это правильный перевод) вместо «ExternalAzureAD»?
Это «Множественное». Просто означает, что существует несколько связанных личностей — обычно три или более.
Благодаря @rbrayb я получил подходящий для моих нужд образец на github здесь.
Мне просто нужно было добавить:
<TechnicalProfile Id = "AAD-UserWriteUsingXY">
...
<PersistedClaims>
...
<!-- Added these lines -->
<PersistedClaim ClaimTypeReferenceId = "alternativeSecurityId" />
<PersistedClaim ClaimTypeReferenceId = "userPrincipalName" />
...
</PersistedClaims>
...
</TechnicalProfile>
в мой собственный технический профиль, который записывает моего пользователя в Azure AD B2C.
После этого мой EntraId-провайдер связывается с моей локальной учетной записью B2C.
Спасибо за ваш комментарий! Насколько я знаю, привязка учетных записей требует взаимодействия с пользователем, когда он должен нажать на определенную кнопку, чтобы учетные записи были связаны. Мой вопрос относится к ситуации, когда сотрудники моей компании могут войти в систему через пользователя в приложении entra-id, и эта учетная запись автоматически связывается с локальным пользователем моего приложения b2c. Это возможно как-то?