Поделиться через


Настройка регистрации и входа с учетной записью Amazon через Azure Active Directory B2C

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

Примечание.

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

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

Приложение, созданное в консоли разработчика Amazon.

Чтобы включить возможность входа для пользователей с учетной записью Amazon в Azure Active Directory B2C (Azure AD B2C), необходимо создать приложение в Amazon Developer Services and Technologies. Дополнительные сведения см. в статье Register for Login with Amazon (Регистрация для входа с помощью Amazon). Если у вас нет учетной записи Amazon, вы можете зарегистрироваться здесь: https://www.amazon.com/.

  1. Войдите в Amazon Developer Console с помощью учетной записи Amazon.
  2. Если вы не зарегистрированы, выберите Sign Up (Регистрация), выполните действия для регистрации разработчика и примите условия политики.
  3. На панели мониторинга выберите Login with Amazon (Войти с помощью учетной записи Amazon).
  4. Щелкните Create a New Security Profile (Создать профиль безопасности).
  5. Заполните поля Security Profile Name (Имя профиля безопасности), Security Profile Description (Описание профиля безопасности) и Consent Privacy Notice URL (URL-адрес уведомления о конфиденциальности), например https://www.contoso.com/privacy. URL-адрес уведомления о конфиденциальности — это управляемая вами страница, на которой находятся сведения о политике конфиденциальности для пользователей. Нажмите кнопку Сохранить.
  6. В разделе Login with Amazon Configurations (Вход с конфигурацией Amazon) выберите созданный профиль в списке Security Profile Name (Имя профиля безопасности), щелкните значок Manage (Управление), а затем выберите Web Settings (Веб-параметры).
  7. В разделе Web Settings (Веб-параметры) скопируйте значение Client ID (Идентификатор клиента). Выберите Show Secret (Показать секрет), чтобы посмотреть и скопировать секрет клиента. Оба значения требуются для настройки учетной записи Amazon в качестве поставщика удостоверений в вашем клиенте. Секрет клиента — это важные учетные данные безопасности.
  8. В разделе Web Settings (Веб-параметры) выберите Edit (Изменить).
    1. В поле Allowed Origins (Разрешенные источники) введите https://your-tenant-name.b2clogin.com. Замените your-tenant-name именем вашего клиента. Если используется личный домен, введите https://your-domain-name.
    2. В поле Allowed Return URLs (Разрешенные URL-адреса возврата) введите 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 укажите имя вашего личного домена.
  9. Выберите Сохранить.

Настройка Amazon в качестве поставщика удостоверений

  1. Войдите на портал Azure с правами глобального администратора клиента Azure AD B2C.
  2. Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
  3. Выберите Все службы в левом верхнем углу окна портала Azure, найдите службу Azure AD B2C и выберите ее.
  4. Щелкните элемент Поставщики удостоверений и выберите вариант Amazon.
  5. Введите Имя. Например, Amazon.
  6. В поле Идентификатор клиента введите идентификатор клиента созданного ранее приложения Amazon.
  7. В качестве секрета клиента введите секрет клиента, записанный ранее.
  8. Выберите Сохранить.

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

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

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

Если вход выполнен успешно, в браузере откроется страница 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. Введите имя ключа политики. Например, AmazonSecret. Префикс B2C_1A_ будет автоматически добавлен к имени ключа.
  8. В поле Секрет введите ранее записанный секрет клиента.
  9. Для параметра Использование ключа выберите Signature.
  10. Нажмите кнопку Создать.

Настройка Amazon в качестве поставщика удостоверений

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

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

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

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

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

    <ClaimsProvider>
      <Domain>amazon.com</Domain>
      <DisplayName>Amazon</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Amazon-OAuth2">
        <DisplayName>Amazon</DisplayName>
        <Protocol Name="OAuth2" />
        <Metadata>
          <Item Key="ProviderName">amazon</Item>
          <Item Key="authorization_endpoint">https://www.amazon.com/ap/oa</Item>
          <Item Key="AccessTokenEndpoint">https://api.amazon.com/auth/o2/token</Item>
          <Item Key="ClaimsEndpoint">https://api.amazon.com/user/profile</Item>
          <Item Key="scope">profile</Item>
          <Item Key="HttpBinding">POST</Item>
          <Item Key="UsePolicyInRedirectUri">false</Item>
          <Item Key="client_id">Your Amazon application client ID</Item>
        </Metadata>
        <CryptographicKeys>
          <Key Id="client_secret" StorageReferenceId="B2C_1A_AmazonSecret" />
        </CryptographicKeys>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="user_id" />
          <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" />
          <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
          <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="amazon.com" />
          <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
        </OutputClaims>
          <OutputClaimsTransformations>
          <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName" />
          <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName" />
          <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId" />
        </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="AmazonExchange" />
  </ClaimsProviderSelections>
  ...
</OrchestrationStep>

<OrchestrationStep Order="2" Type="ClaimsExchange">
  ...
  <ClaimsExchanges>
    <ClaimsExchange Id="AmazonExchange" TechnicalProfileReferenceId="Amazon-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. На странице регистрации или входа выберите Amazon, чтобы выполнить вход с помощью учетной записи Amazon.

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