Identity Experience Framework - получение запроса по электронной почте с помощью настраиваемой политики Azure AD с несколькими арендаторами

Я выполнил приведенные здесь инструкции, чтобы настроить многопользовательскую политику Azure AD в Identity Experience Framework: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/active-directory-b2c-setup-commonaad-custom?tabs=applications

Однако я не могу получить обратно претензию, содержащую адрес электронной почты (соответствующий «имени пользователя» из внешнего активного каталога).

Основной установка активного каталога для одного клиента работает нормально, когда я использую это сопоставление утверждений (а другие учетные записи" социальных "поставщиков работают с PartnerClaimType="email"):

<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="upn" />

Однако я пробовал следующие комбинации для мультитенанта и, похоже, не получаю данные от провайдера:

<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="upn" />
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
<OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="mail" />

Пожалуйста, может ли кто-нибудь сообщить мне правильное сопоставление требований для этого, чтобы получить вывод электронной почты из пользовательского потока?


person Kevin C    schedule 10.12.2019    source источник
comment
Я считаю, что вы ищете unique_name, но вам следует сделать запрос токена в AAD с помощью POSTman и увидеть токен для себя, чтобы правильно сопоставить его.   -  person Jas Suri - MSFT    schedule 11.12.2019
comment
Если мой ответ полезен для вас, вы можете принять его как ответ (щелкните галочку рядом с ответом, чтобы переключить его с серого на заполненный). Это может быть полезно для других членов сообщества. Спасибо.   -  person Allen Wu    schedule 13.12.2019


Ответы (1)


То, что вы ищете, - это «имя_пользователя».

Добавьте <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="preferred_username" /> в файл TrustFrameworkExtensions.xml, чтобы проверить, работает ли он.

person Allen Wu    schedule 12.12.2019
comment
Большое спасибо, это работает! Вы случайно не знаете, есть ли хорошая справочная ссылка для поиска этих типов претензий партнеров? (То есть, как узнать, что здесь мне нужно использовать preferred_username) Поскольку я потратил довольно много времени, пробуя указанные выше параметры, но я не знал, как проверить, какие существуют возможные типы требований? - person Kevin C; 16.12.2019
comment
@KevinC. Ссылка отсутствует. Я нахожу предпочтительное_имя пользователя, используя поток кода авторизации: docs.microsoft.com/en-us/azure/active-directory/develop/. Обратите внимание, что вы должны установить common в качестве арендатора. После того, как вы получите токен идентификатора, вы можете его декодировать в jwt.io, чтобы увидеть имя предпочтительного_пользователя - это одно из требований. - person Allen Wu; 17.12.2019
comment
Спасибо, я искал, как это сделать в течение нескольких дней, и попробовал 5 или 6 различных методов, этот работает для многопользовательских приложений azure b2c. - person Holonaut; 06.01.2020
comment
@AllenWu Знаете ли вы, что ClaimTypeReferenceId указать для внешнего однопользовательского AD? Я также не получаю электронное письмо в выходной заявке на одного арендатора. Я использовал signInNames.emailAddress для социальных / локальных аккаунтов. - person Niladri; 02.10.2020
comment
@KevinC, что вы использовали в заявке на вывод для одного арендатора? у меня это не работает. - person Niladri; 02.10.2020
comment
@Niladri Я сейчас точно не помню, но думаю, следуя инструкциям здесь docs.microsoft.com/en-gb/azure/active-directory-b2c/ единственное изменение, которое я сделано было добавить это OutputClaim. Насколько я помню, это было хорошо для однотенантного, но не для мультитенантного: <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="upn" /> - person Kevin C; 05.10.2020