Настройка регистрации и входа с помощью Apple ID посредством Azure Active Directory B2C

Для начала с помощью селектора Choose a policy type (Выбрать тип политики) выберите тип пользовательской политики. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.

Из этой статьи вы узнаете, как организовать в приложениях регистрацию и вход для клиентов с мобильным идентификатором, используя Azure Active Directory B2C (Azure AD B2C). Решение с мобильным идентификатором защищает доступ к корпоративным данным и приложениям с помощью комплексного сквозного решения для надежной многофакторной проверки подлинности (MFA). Вы добавляете мобильный идентификатор в пользовательские потоки или настраиваемую политику с использованием протокола OpenID Connect.

Необходимые компоненты

Создание приложения с мобильным идентификатором

Чтобы настроить вход для пользователей с мобильным идентификатором в Azure AD B2C, необходимо создать приложение. Чтобы создать приложение с мобильным идентификатором, сделайте следующее:

  1. Обратитесь в службу поддержки по мобильным идентификаторам.

  2. Укажите информацию по мобильному идентификаторы касательно вашего клиента Azure AD B2C:

    Ключ. Примечание.
    URI перенаправления Укажите универсальный код ресурса (URI) https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com/oauth2/authresp. Если используется личный домен, введите https://your-domain-name/your-tenant-name.onmicrosoft.com/oauth2/authresp. Замените your-tenant-name именем своего арендатора, а вместо your-domain-name укажите имя вашего личного домена.
    Способ проверки подлинности конечной точки маркера client_secret_post
  3. Когда приложение будет зарегистрировано, мобильный идентификатор предоставит указанные ниже сведения. Используйте их для настройки потока пользователя или настраиваемой политики.

    Ключ. Примечание.
    ИД клиента Мобильный идентификатор клиента Например, 11111111-2222-3333-4444-555555555555.
    Секрет клиента Секрет клиента с мобильным идентификатором.

Настройка мобильного идентификатора в качестве поставщика удостоверений

  1. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.

  2. Выберите Все службы в левом верхнем углу окна портала Azure, а затем найдите и выберите Azure AD B2C.

  3. Щелкните элемент Поставщики удостоверений, а затем выберите Новый поставщик OpenID Connect.

  4. Введите Имя. Например, введите мобильный идентификатор.

  5. В поле URL-адрес метаданных введите URL-адрес мобильного идентификатора известной конечной точки конфигурации OpenId. Например:

    https://openid.mobileid.ch/.well-known/openid-configuration
    
  6. Идентификатор клиента: введите мобильный идентификатор клиента.

  7. Секрет клиента: введите мобильный идентификатор секрета клиента.

  8. Для параметра Область введите значение openid, profile, phone, mid_profile.

  9. Сохраните значения по умолчанию для параметров "Тип ответа" (code) и "Режим ответа" (form_post).

  10. (Необязательно) В поле Указание домена Введите mobileid.ch. Дополнительные сведения см. в статье Настройка прямого входа в систему с помощью Azure Active Directory B2C.

  11. В разделе Сопоставление утверждений поставщика удостоверений выберите следующие утверждения:

    • Идентификатор пользователя: sub;
    • Display name: name;
  12. Выберите Сохранить.

Добавление поставщика удостоверений в виде мобильных идентификаторов в поток пользователя

На этом этапе поставщик удостоверений в виде мобильных идентификаторов уже настроен, но еще не отображается на страницах входа. Для добавления поставщика удостоверений в виде мобильных идентификаторов в поток пользователя:

  1. В клиенте Azure AD B2C выберите Потоки пользователей.
  2. Выберите поток пользователя, для которого требуется добавить поставщика удостоверений в виде мобильного идентификатора.
  3. В разделе "Поставщики удостоверений в социальных сетях" выберите "Мобильный идентификатор".
  4. Выберите Сохранить.
  5. Чтобы проверить политику, выберите Выполнить поток пользователя.
  6. В разделе Приложение выберите зарегистрированное ранее веб-приложение с именем testapp1. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.
  7. Нажмите кнопку Выполнить поток пользователя.
  8. На странице регистрации или входа выберите "Мобильный идентификатор", чтобы выполнить вход с помощью мобильного идентификатора.

Если вход выполнен успешно, в браузере откроется страница https://jwt.ms с содержимым маркера, возвращенного Azure AD B2C.

Создание ключа политики

Вам необходимо хранить секрет клиента, который вы получили из мобильного идентификатора, в клиенте Azure AD B2C.

  1. Войдите на портал Azure.
  2. Убедитесь, что вы используете каталог, содержащий клиент Azure AD B2C. Выберите фильтр Каталог и подписка в верхнем меню и выберите каталог, который содержит ваш клиент.
  3. Выберите Все службы в левом верхнем углу окна портала Azure, а затем найдите и выберите Azure AD B2C.
  4. На странице "Обзор" выберите Identity Experience Framework.
  5. Выберите Ключи политики, а затем щелкните Добавить.
  6. Для пункта Параметры выберите Manual.
  7. Введите имя ключа политики. Например, Mobile IDSecret. Префикс B2C_1A_ будет автоматически добавлен к имени ключа.
  8. В поле Секрет введите секрет клиента с мобильным идентификатором.
  9. Для параметра Использование ключа выберите Signature.
  10. Выберите Создать.

Настройка мобильного идентификатора в качестве поставщика удостоверений

Чтобы разрешить пользователям входить в систему с помощью мобильного идентификатора, нужно определить мобильный идентификатор в качестве поставщика утверждений, с которым Azure AD B2C может взаимодействовать через конечную точку. Конечная точка предоставляет набор утверждений, используемых Azure AD B2C, чтобы проверить, была ли выполнена проверка подлинности определенного пользователя.

Чтобы определить мобильный идентификатор в качестве поставщика утверждений, добавьте его в элемент ClaimsProviders в файле расширения политики.

  1. Откройте файл TrustFrameworkExtensions.xml.

  2. Найдите элемент ClaimsProviders. Если он не существует, добавьте его в корневой элемент.

  3. Добавьте новый элемент ClaimsProvider следующим образом.

    <ClaimsProvider>
    <Domain>mobileid.ch</Domain>
    <DisplayName>Mobile-ID</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="MobileID-OAuth2">
      <DisplayName>Mobile-ID</DisplayName>
      <Protocol Name="OAuth2" />
      <Metadata>
        <Item Key="ProviderName">Mobile-ID</Item>
         <Item Key="authorization_endpoint">https://m.mobileid.ch/oidc/authorize</Item>
          <Item Key="AccessTokenEndpoint">https://openid.mobileid.ch/token</Item>
          <Item Key="ClaimsEndpoint">https://openid.mobileid.ch/userinfo</Item>
          <Item Key="scope">openid, profile, phone, mid_profile</Item>
          <Item Key="HttpBinding">POST</Item>
          <Item Key="UsePolicyInRedirectUri">false</Item>
          <Item Key="token_endpoint_auth_method">client_secret_post</Item>
          <Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item>
          <Item Key="client_id">Your application ID</Item>
        </Metadata>
        <CryptographicKeys>
          <Key Id="client_secret" StorageReferenceId="B2C_1A_MobileIdSecret" />
        </CryptographicKeys>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub"/>
          <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name"/>
          <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="mobileid.ch" />
          <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
        </OutputClaims>
        <OutputClaimsTransformations>
          <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
          <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
          <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId" />
        </OutputClaimsTransformations>
        <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin" />
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  4. Введите мобильный идентификатор клиента в client_id.

  5. Сохраните файл.

Добавление пути взаимодействия пользователя

На этом этапе поставщик удостоверений уже настроен, но еще не отображается на страницах входа. Если у вас нет собственного пути взаимодействия пользователя, создайте дубликат существующего шаблона. В противном случае перейдите к следующему шагу.

  1. Откройте файл TrustFrameworkBase.xml из начального пакета.
  2. Найдите и скопируйте все содержимое элемента UserJourney, в котором присутствует запись Id="SignUpOrSignIn".
  3. Откройте файл TrustFrameworkExtensions.xml и найдите элемент UserJourneys. Если элемент не существует, добавьте его.
  4. Вставьте все скопированное содержимое элемента UserJourney в качестве дочернего элемента в элемент UserJourneys.
  5. Переименуйте идентификатор этого пути взаимодействия пользователя. Например, Id="CustomSignUpSignIn".

Добавление поставщика удостоверений в путь взаимодействия пользователя

Теперь, когда у вас есть путь взаимодействия пользователя, добавьте в него новый поставщик удостоверений. Сначала добавьте кнопку входа, а затем свяжите кнопку с действием. Это действие является техническим профилем, который вы создали ранее.

  1. В пути взаимодействия пользователя найдите элемент шага оркестрации, включающий Type="CombinedSignInAndSignUp" или Type="ClaimsProviderSelection". Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, которые пользователь может использовать для входа. Порядок элементов управляет порядком кнопок входа, представленных пользователем. Добавьте XML-элемент ClaimsProviderSelection. Присвойте значению TargetClaimsExchangeId понятное имя.

  2. На следующем шаге оркестрации добавьте элемент ClaimsExchange. Задайте в качестве Id значение идентификатора обмена утверждениями целевого объекта. Замените значение TechnicalProfileReferenceId идентификатором технического профиля, созданным ранее.

В следующем коде XML показаны первые два этапа оркестрации пути взаимодействия пользователя с поставщиком удостоверений:

<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
  <ClaimsProviderSelections>
    ...
    <ClaimsProviderSelection TargetClaimsExchangeId="MobileIDExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="MobileIDExchange" TechnicalProfileReferenceId="MobileID-OAuth2" />
  </ClaimsExchanges>
</OrchestrationStep>

Настройка политики проверяющей стороны

Политика проверяющей стороны, например SignUpSignIn.xml, указывает путь взаимодействия пользователя, который будет исполнять Azure AD B2C. Найдите элемент DefaultUserJourney в элементе проверяющей стороны. Обновите ReferenceId в соответствии с идентификатором пути взаимодействия пользователя, в который добавлен поставщик удостоверений.

В следующем примере в качестве значения параметра ReferenceId пути взаимодействия пользователя CustomSignUpSignIn задано CustomSignUpSignIn:

<RelyingParty>
  <DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
  ...
</RelyingParty>

Передача настраиваемой политики

  1. Войдите на портал Azure.
  2. Выберите значок Каталог и подписка в верхней панели инструментов портала, а затем выберите каталог, содержащий клиент Azure AD B2C.
  3. В портале Azure найдите и выберите Azure AD B2C.
  4. В разделе Политики выберите Identity Experience Framework.
  5. Выберите Отправить пользовательскую политику, а затем отправьте два измененных файла политики в следующем порядке: политика расширения, например TrustFrameworkExtensions.xml, а затем политика проверяющей стороны, например SignUpSignIn.xml.

Тестирование настраиваемой политики

  1. Выберите политику проверяющей стороны, например B2C_1A_signup_signin.
  2. В разделе Приложение выберите зарегистрированное ранее веб-приложение. В поле URL-адрес ответа должно содержаться значение https://jwt.ms.
  3. Нажмите кнопку Выполнить.
  4. На странице регистрации или входа выберите "Мобильный идентификатор", чтобы выполнить вход с помощью мобильного идентификатора.

Если вход выполнен успешно, в браузере откроется страница https://jwt.ms с содержимым маркера, возвращенного Azure AD B2C.

Следующие шаги

Узнайте, как передать токен мобильного идентификатора в приложение.