Получить адрес электронной почты (имя пользователя) в заявке Azure AdB2C, зарегистрированной в AzureAd, как социальная учетная запись

Вместо использования экземпляра с оператором разрешения области :: поскольку он не был определен как статическая функция.

$r=Page::getInstanceByName($page);

измените его на:

$r=Page->getInstanceByName($page);

И он будет работать как шарм.

0
задан Nik 18 March 2019 в 17:48
поделиться

1 ответ

Когда в Azure AD выполняется вход в первый раз, необходимо сопоставить заявку upn , выданную Azure AD, с заявкой электронной почты , которая используется Azure AD B2C, так что это утверждение email может быть:

  1. Записано как свойство otherMails в объекте user для каталог Azure AD B2C.
  2. Выдано Azure AD B2C в токене идентификатора клиентскому приложению.

Чтобы сопоставить заявку upn , выданную Azure AD, с заявкой электронной почты , которая используется Azure AD B2C, добавьте новую <OutputClaim /> к Технический профиль проверки подлинности Azure AD:

<ClaimsProvider>
  <Domain>commonaad</Domain>
  <DisplayName>Common AAD</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="Common-AAD">
      <DisplayName>Multi-Tenant AAD</DisplayName>
      <Protocol Name="OpenIdConnect" />
      ...
      <OutputClaims>
        ...
        <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="upn" />
      </OutputClaims>
      ...
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Технический профиль AAD-UserWriteUsingAlternativeSecurityId преобразует заявку электронной почты в другие сообщения [ 1122] запрашивает, вызывая преобразование утверждений CreateOtherMailsFromEmail , а затем сохраняет утверждение otherMails объекту пользователя .

Чтобы отправить заявку по электронной почте в идентификаторе токена для вашего клиентского приложения, добавьте новый <OutputClaim /> в технический профиль проверяющей стороны:

<RelyingParty>
  <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
  <TechnicalProfile Id="PolicyProfile">
    <DisplayName>PolicyProfile</DisplayName>
    <Protocol Name="OpenIdConnect" />
    ...
    <OutputClaims>
      ...
      <OutputClaim ClaimTypeReferenceId="otherMails" PartnerClaimType="emails" />
    </OutputClaims>
    ...
  </TechnicalProfile>
</RelyingParty>
0
ответ дан Chris Padgett 18 March 2019 в 17:48
поделиться