Настройка регистрации и входа с учетной записью Amazon через Azure Active Directory B2C
Для начала с помощью селектора Choose a policy type (Выбрать тип политики) выберите тип пользовательской политики. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
Примечание.
В 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/.
- Войдите в Amazon Developer Console с помощью учетной записи Amazon.
- Если вы не зарегистрированы, выберите Sign Up (Регистрация), выполните действия для регистрации разработчика и примите условия политики.
- На панели мониторинга выберите Login with Amazon (Войти с помощью учетной записи Amazon).
- Щелкните Create a New Security Profile (Создать профиль безопасности).
- Заполните поля Security Profile Name (Имя профиля безопасности), Security Profile Description (Описание профиля безопасности) и Consent Privacy Notice URL (URL-адрес уведомления о конфиденциальности), например
https://www.contoso.com/privacy
. URL-адрес уведомления о конфиденциальности — это управляемая вами страница, на которой находятся сведения о политике конфиденциальности для пользователей. Нажмите кнопку Сохранить. - В разделе Login with Amazon Configurations (Вход с конфигурацией Amazon) выберите созданный профиль в списке Security Profile Name (Имя профиля безопасности), щелкните значок Manage (Управление), а затем выберите Web Settings (Веб-параметры).
- В разделе Web Settings (Веб-параметры) скопируйте значение Client ID (Идентификатор клиента). Выберите Show Secret (Показать секрет), чтобы посмотреть и скопировать секрет клиента. Оба значения требуются для настройки учетной записи Amazon в качестве поставщика удостоверений в вашем клиенте. Секрет клиента — это важные учетные данные безопасности.
- В разделе Web Settings (Веб-параметры) выберите Edit (Изменить).
- В поле Allowed Origins (Разрешенные источники) введите
https://your-tenant-name.b2clogin.com
. Заменитеyour-tenant-name
именем вашего клиента. Если используется личный домен, введитеhttps://your-domain-name
. - В поле 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
укажите имя вашего личного домена.
- В поле Allowed Origins (Разрешенные источники) введите
- Выберите Сохранить.
Настройка Amazon в качестве поставщика удостоверений
- Войдите на портал Azure с правами глобального администратора клиента Azure AD B2C.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- Выберите Все службы в левом верхнем углу окна портала Azure, найдите службу Azure AD B2C и выберите ее.
- Щелкните элемент Поставщики удостоверений и выберите вариант Amazon.
- Введите Имя. Например, Amazon.
- В поле Идентификатор клиента введите идентификатор клиента созданного ранее приложения Amazon.
- В качестве секрета клиента введите секрет клиента, записанный ранее.
- Выберите Сохранить.
Добавление поставщика удостоверений Amazon в поток пользователя
На этом этапе поставщик удостоверений Amazon уже настроен, но еще не отображается на страницах входа. Чтобы добавить поставщика удостоверений Amazon в поток пользователя:
- В клиенте Azure AD B2C выберите Потоки пользователей.
- Выберите поток пользователя, для которого требуется добавить поставщика удостоверений Amazon.
- В разделе Поставщики удостоверений социальных сетей выберите Amazon.
- Выберите Сохранить.
- Чтобы проверить политику, выберите Выполнить поток пользователя.
- В разделе Приложение выберите зарегистрированное ранее веб-приложение с именем testapp1. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
. - Нажмите кнопку Выполнить поток пользователя.
- На странице регистрации или входа выберите Amazon, чтобы выполнить вход с помощью учетной записи Amazon.
Если вход выполнен успешно, в браузере откроется страница https://jwt.ms
с содержимым маркера, возвращенного Azure AD B2C.
Создание ключа политики
Вам необходимо сохранить секрет клиента, который ранее был записан в клиенте Azure AD B2C.
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, выберите значок Параметры в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню каталогов и подписок.
- Выберите Все службы в левом верхнем углу окна портала Azure, а затем найдите и выберите Azure AD B2C.
- На странице "Обзор" выберите Identity Experience Framework.
- Выберите Ключи политики, а затем щелкните Добавить.
- Для пункта Параметры выберите
Manual
. - Введите имя ключа политики. Например,
AmazonSecret
. ПрефиксB2C_1A_
будет автоматически добавлен к имени ключа. - В поле Секрет введите ранее записанный секрет клиента.
- Для параметра Использование ключа выберите
Signature
. - Нажмите кнопку Создать.
Настройка Amazon в качестве поставщика удостоверений
Чтобы пользователи могли выполнить вход с помощью учетной записи Amazon, необходимо определить учетную запись в качестве поставщика утверждений, с которым Azure AD B2C может взаимодействовать с помощью конечной точки. Конечная точка предоставляет набор утверждений, используемых Azure AD B2C, чтобы проверить, была ли выполнена проверка подлинности определенного пользователя.
Чтобы определить учетную запись Amazon в качестве поставщика утверждений, добавьте ее в элемент ClaimsProviders в файле расширения политики.
Откройте файл TrustFrameworkExtensions.xml.
Найдите элемент ClaimsProviders. Если он не существует, добавьте его в корневой элемент.
Добавьте новый элемент 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>
Задайте для параметра client_id значение идентификатора приложения из регистрации приложения.
Сохраните файл.
Добавление пути взаимодействия пользователя
На этом этапе поставщик удостоверений уже настроен, но еще не отображается на страницах входа. Если у вас нет собственного пути взаимодействия пользователя, создайте дубликат существующего шаблона. В противном случае перейдите к следующему шагу.
- Откройте файл TrustFrameworkBase.xml из начального пакета.
- Найдите и скопируйте все содержимое элемента UserJourney, в котором присутствует запись
Id="SignUpOrSignIn"
. - Откройте файл TrustFrameworkExtensions.xml и найдите элемент UserJourneys. Если элемент не существует, добавьте его.
- Вставьте все скопированное содержимое элемента UserJourney в качестве дочернего элемента в элемент UserJourneys.
- Переименуйте идентификатор этого пути взаимодействия пользователя. Например,
Id="CustomSignUpSignIn"
.
Добавление поставщика удостоверений в путь взаимодействия пользователя
Теперь, когда у вас есть путь взаимодействия пользователя, добавьте в него новый поставщик удостоверений. Сначала добавьте кнопку входа, а затем свяжите кнопку с действием. Это действие является техническим профилем, который вы создали ранее.
В пути взаимодействия пользователя найдите элемент шага оркестрации, включающий
Type="CombinedSignInAndSignUp"
илиType="ClaimsProviderSelection"
. Обычно это первый шаг оркестрации. Элемент ClaimsProviderSelections содержит список поставщиков удостоверений, которые пользователь может использовать для входа. Порядок элементов управляет порядком кнопок входа, представленных пользователем. Добавьте XML-элемент ClaimsProviderSelection. Присвойте значению TargetClaimsExchangeId понятное имя.На следующем шаге оркестрации добавьте элемент 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>
Передача настраиваемой политики
- Войдите на портал Azure.
- Выберите значок Каталог и подписка в верхней панели инструментов портала, а затем выберите каталог, содержащий клиент Azure AD B2C.
- В портале Azure найдите и выберите Azure AD B2C.
- В разделе Политики выберите Identity Experience Framework.
- Выберите Отправить пользовательскую политику, а затем отправьте два измененных файла политики в следующем порядке: политика расширения, например
TrustFrameworkExtensions.xml
, а затем политика проверяющей стороны, напримерSignUpSignIn.xml
.
Тестирование настраиваемой политики
- Выберите политику проверяющей стороны, например
B2C_1A_signup_signin
. - В разделе Приложение выберите зарегистрированное ранее веб-приложение. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
. - Нажмите кнопку Выполнить.
- На странице регистрации или входа выберите Amazon, чтобы выполнить вход с помощью учетной записи Amazon.
Если вход выполнен успешно, в браузере откроется страница https://jwt.ms
с содержимым маркера, возвращенного Azure AD B2C.