Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
Прежде чем начать, используйте селектор типа политики в верхней части этой страницы, чтобы выбрать тип политики, которую вы настроите. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
OpenID Connect — это протокол проверки подлинности, созданный на основе OAuth 2.0, который можно использовать для безопасного входа пользователя. Большинство поставщиков удостоверений, использующих этот протокол, поддерживаются в Azure AD B2C.
В этой статье объясняется, как добавить пользовательских поставщиков удостоверений OpenID Connect в потоки пользователей.
Это важно
Конечные точки должны соответствовать требованиям безопасности Azure AD B2C. Устаревшие версии TLS и шифры устарели. Для получения дополнительной информации см. требования к TLS и наборам шифров для Azure AD B2C.
Предпосылки
- Создайте поток пользователя, чтобы пользователи могли зарегистрироваться и входить в ваше приложение.
- Зарегистрируйте веб-приложение.
- Выполните действия, описанные в статье "Начало работы с настраиваемыми политиками в Active Directory B2C". В этом руководстве описано, как обновить пользовательские файлы политики для использования конфигурации клиента Azure AD B2C.
- Зарегистрируйте веб-приложение.
Добавьте поставщика удостоверений
- Войдите на портал Azure с учетной записью, которая имеет по крайней мере права администратора внешнего поставщика удостоверений .
- Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
- Выберите все службы в левом верхнем углу портала Azure, найдите и выберите Azure AD B2C.
- Выберите поставщики удостоверений и выберите новый поставщик OpenID Connect.
- Введите Имя. Например, введите Contoso.
Определите поставщика удостоверений OpenId Connect, добавив его в элемент ClaimsProviders в файле расширения политики.
Откройте TrustFrameworkExtensions.xml.
Найдите элемент ClaimsProviders . Если он не существует, добавьте его в корневой элемент.
Добавьте новый ClaimsProvider следующим образом:
<ClaimsProvider> <Domain>contoso.com</Domain> <DisplayName>Login with Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-OpenIdConnect"> <DisplayName>Contoso</DisplayName> <Description>Login with your Contoso account</Description> <Protocol Name="OpenIdConnect"/> <Metadata> <Item Key="METADATA">https://your-identity-provider.com/.well-known/openid-configuration</Item> <Item Key="client_id">00001111-aaaa-2222-bbbb-3333cccc4444</Item> <Item Key="response_types">code</Item> <Item Key="scope">openid profile</Item> <Item Key="response_mode">form_post</Item> <Item Key="HttpBinding">POST</Item> <Item Key="UsePolicyInRedirectUri">false</Item> </Metadata> <!-- <CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys> --> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="oid"/> <OutputClaim ClaimTypeReferenceId="tenantId" PartnerClaimType="tid"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name" /> <OutputClaim ClaimTypeReferenceId="surName" PartnerClaimType="family_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" /> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" AlwaysUseDefaultValue="true" /> <OutputClaim ClaimTypeReferenceId="identityProvider" PartnerClaimType="iss" /> <OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="oid"/> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-SocialLogin"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Настройка поставщика удостоверений
Каждый поставщик удостоверений OpenID Connect описывает документ метаданных, содержащий большую часть сведений, необходимых для входа. В документе метаданных содержатся такие сведения, как URL-адреса, используемые и расположение открытых ключей подписывания службы. Документ метаданных OpenID Connect всегда находится в конечной точке, которая заканчивается .well-known/openid-configuration
на . Чтобы добавить поставщика удостоверений, которого вы хотите добавить в OpenID Connect, введите его URL-адрес метаданных.
В поле url метаданных введите URL-адрес документа метаданных OpenID Connect.
В метаданных <Item Key="METADATA">
технического профиля введите URL-адрес документа метаданных OpenID Connect.
Идентификатор клиента и секрет
Чтобы пользователи могли войти в систему, поставщик удостоверений требует от разработчиков регистрации приложения в своей службе. Это приложение имеет идентификатор, который называется идентификатором клиента и секретом клиента.
Секрет клиента необязателен. Однако необходимо указать секрет клиента, если тип ответа — это code
, который использует секрет для обмена кода на токен.
Чтобы добавить идентификатор клиента и секрет клиента, скопируйте эти значения из поставщика удостоверений и введите их в соответствующие поля.
В метаданных технического <Item Key="client_id">
профиля введите идентификатор клиента.
Создание ключа политики
Если требуется секрет клиента, сохраните секрет клиента, записанный ранее в клиенте Azure AD B2C.
Войдите на портал Azure.
Убедитесь, что вы используете каталог, содержащий арендатора Azure AD B2C. Выберите фильтр каталога и подписки на панели инструментов портала.
В настройках портала на странице Каталоги и подписки найдите свой каталог Azure AD B2C в списке Имя каталога и выберите Переключить.
Выберите все службы в левом верхнем углу портала Azure, а затем найдите и выберите Azure AD B2C.
На странице "Обзор" выберите Identity Experience Framework.
Выберите ключи политики и нажмите кнопку "Добавить".
В разделе "Параметры" выберите
Manual
.Введите имя для ключа политики. Например:
ContosoSecret
. ПрефиксB2C_1A_
добавляется автоматически в имя ключа.В поле Secret введите ваш секрет клиента, который вы записали ранее.
Для использования ключа выберите
Signature
.Нажмите кнопку Создать.
CryptographicKeys
В XML-элементе добавьте следующий элемент:<CryptographicKeys> <Key Id="client_secret" StorageReferenceId="B2C_1A_ContosoSecret"/> </CryptographicKeys>
Область действия
Область определяет сведения и разрешения, которые вы хотите собрать у поставщика удостоверений, например openid profile
. Чтобы получить токен идентификатора от поставщика удостоверений, необходимо задать область openid
.
Без токена ID пользователи не смогут войти в Azure AD B2C через пользовательского поставщика удостоверений. Другие области могут быть добавлены, разделенные пробелами. Ознакомьтесь с документацией поставщика пользовательских удостоверений, чтобы узнать, какие другие области могут быть доступны.
В области введите области из поставщика удостоверений. Например: openid profile
.
<Item Key="scope">
В метаданных технического профиля введите области от поставщика удостоверений. Например: openid profile
.
Тип ответа
Тип ответа описывает, какая информация отправляется обратно в первоначальном вызове authorization_endpoint
пользовательского поставщика удостоверений. Можно использовать следующие типы ответов:
-
code
: согласно потоку кода авторизации код будет возвращен обратно в Azure AD B2C. Azure AD B2C продолжает вызыватьtoken_endpoint
, чтобы обменять код на токен. -
id_token
: токен идентификатора возвращается обратно в Azure AD B2C из пользовательского поставщика удостоверений.
В типе ответа выберите code
или id_token
в соответствии с параметрами поставщика удостоверений.
В метаданных технического профиля <Item Key="response_types">
выберите code
или id_token
в соответствии с параметрами вашего поставщика удостоверений.
Режим отклика
Режим ответа определяет метод, который следует использовать для отправки данных обратно из пользовательского поставщика удостоверений в Azure AD B2C. Можно использовать следующие режимы отклика:
-
form_post
: этот режим ответа рекомендуется для оптимальной безопасности. Ответ передается по методу HTTPPOST
с кодом или токеном, закодированными в теле с использованием форматаapplication/x-www-form-urlencoded
. -
query
: код или маркер возвращаются в качестве параметра запроса.
В режиме ответа выберите form_post
или query
в соответствии с параметрами поставщика удостоверений.
В метаданных технического профиля <Item Key="response_mode">
выберите form_post
, или query
, в соответствии с настройками вашего поставщика удостоверений.
Указание домена
Подсказка домена может использоваться для перехода непосредственно на страницу входа к указанному сервису поставщика удостоверений, вместо того, чтобы пользователь делал выбор среди списка доступных поставщиков удостоверений.
Чтобы разрешить такое поведение, введите значение для указания домена. Чтобы перейти к пользовательскому поставщику удостоверений, добавьте параметр domain_hint=<domain hint value>
в конец запроса при вызове Azure AD B2C для входа.
В подсказке домена введите доменное имя, используемое в указании домена.
В xml-элементе технического профиля введите доменное <Domain>contoso.com</Domain>
имя, используемое в указании домена. Например: contoso.com
.
Сопоставление утверждений
После того как пользовательский поставщик удостоверений отправляет маркер идентификатора обратно в Azure AD B2C, Azure AD B2C необходимо сопоставить утверждения из полученного маркера с теми, которые оно распознает и использует. Для каждого из следующих сопоставлений см. документацию пользовательского поставщика удостоверений, чтобы понять утверждения, возвращаемые обратно в токены поставщика удостоверений.
- Идентификатор пользователя: введите утверждение, которое предоставляет уникальный идентификатор для вошедшего пользователя.
- Отображаемое имя: введите утверждение, которое предоставляет отображаемое имя или полное имя пользователя.
- Заданное имя: введите утверждение, которое предоставляет имя пользователя.
- Фамилия: введите утверждение, которое предоставляет фамилию пользователя.
- Электронная почта: введите утверждение, которое предоставляет адрес электронной почты пользователя.
Элемент OutputClaims
содержит список утверждений, возвращаемых поставщиком аутентификации. Сопоставьте имя утверждения, определенного в вашей политике, с именем, определенным удостоверяющим центром. Настройте атрибут <OutputClaims>
в элементе PartnerClaimType
с соответствующим именем утверждения, как определено вашим поставщиком удостоверений.
ИдентификаторСсылкиТипаТребования | ТипЗапросаПартнера |
---|---|
issuerUserId |
Введите утверждение, которое предоставляет уникальный идентификатор для пользователя, вошедшего в систему. |
displayName |
Введите утверждение, которое предоставляет отображаемое имя или полное имя пользователя. |
givenName |
Введите утверждение, которое предоставляет первое имя пользователя. |
surName |
Введите утверждение, которое предоставляет фамилию пользователя. |
email |
Введите утверждение, которое предоставляет адрес электронной почты пользователя. |
identityProvider |
Введите утверждение, которое содержит имя эмитента токенов. Например: iss . Если поставщик удостоверения личности не включает утверждение издателя в токен, задайте атрибут DefaultValue с уникальным идентификатором вашего поставщика удостоверения личности. Например: DefaultValue="contoso.com" . |
Добавьте поставщика удостоверений в пользовательский поток
- В клиенте Azure AD B2C выберите потоки пользователей.
- Щелкните поток пользователя, в который вы хотите добавить поставщика удостоверений.
- В разделе социальные провайдеры идентификации выберите добавленного поставщика. Например, Contoso.
- Нажмите кнопку "Сохранить".
Тестирование потока пользователя
- Чтобы протестировать вашу политику, выберите Запустить поток пользователя.
- Для приложения выберите веб-приложение с именем testapp1 , которое вы ранее зарегистрировали. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
. - Нажмите на кнопку Запустить пользовательский поток.
- На странице регистрации или входа выберите поставщика удостоверений, через которого вы хотите войти в систему. Например, Contoso.
Если процесс входа выполнен успешно, браузер перенаправляется на https://jwt.ms
, где отображается содержимое токена, возвращаемого Azure AD B2C.
Добавить пользовательский сценарий
На этом этапе поставщик удостоверений настроен, но он еще не доступен на любой из страниц входа. Если у вас нет собственного пользовательского пути, создайте дубликат существующего пути пользователя шаблона, в противном случае перейдите к следующему шагу.
- Откройте файл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="ContosoExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="ContosoExchange" TechnicalProfileReferenceId="Contoso-OpenIdConnect" />
</ClaimsExchanges>
</OrchestrationStep>
Настройте политику доверяющей стороны
Политика проверяющей стороны, например SignUpSignIn.xml, указывает пользовательский сценарий, который будет выполнять Azure AD B2C. Найдите элемент DefaultUserJourney в поддерживающей стороне. Обновите ReferenceId, чтобы он соответствовал идентификатору пути пользователя, где вы добавили провайдера идентификации.
В следующем примере для CustomSignUpSignIn
пути пользователя для параметра ReferenceId задано значение 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
. - Нажмите кнопку "Запустить сейчас ".
- На странице регистрации или входа выберите Contoso , чтобы войти с помощью учетной записи Google.
Если процесс входа выполнен успешно, браузер перенаправляется на https://jwt.ms
, где отображается содержимое токена, возвращаемого Azure AD B2C.
Известные проблемы
- Azure AD B2C не поддерживает JWE (веб-шифрование JSON) для обмена зашифрованными токенами с поставщиками удостоверений OpenID connect.
Дальнейшие шаги
Дополнительные сведения см. в руководстве по техническому профилю OpenId Connect .