Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Начиная с 1 мая 2025 г. Azure AD B2C больше не будет доступен для приобретения для новых клиентов. Дополнительные сведения см. в разделе "Вопросы и ответы".
Azure Active Directory B2C (Azure AD B2C) поддерживает федерацию с поставщиками удостоверений SAML 2.0. В этой статье показано, как настроить вход с использованием учетной записи пользователя поставщика идентификационных данных SAML, что позволяет пользователям входить, используя их существующие социальные или корпоративные учётные записи, такие как ADFS и Salesforce.
Прежде чем начать, используйте селектор типа политики в верхней части этой страницы, чтобы выбрать тип политики, которую вы настроите. Azure Active Directory B2C предлагает два метода определения способа взаимодействия пользователей с вашими приложениями: с помощью предопределенных потоков пользователей или полностью настраиваемых пользовательских политик. Действия, которые необходимо выполнить, отличаются для каждого метода.
Эта функция доступна только для пользовательских политик. Для действий по настройке выберите пользовательскую политику в предыдущем селекторе.
Обзор сценария
Вы можете настроить Azure AD B2C, чтобы пользователи могли входить в приложение с учетными данными от внешних социальных или корпоративных поставщиков удостоверений SAML (IdP). Когда Azure AD B2C объединяется с поставщиком удостоверений SAML, он выступает в качестве поставщика услуг , инициирующего запрос SAML к поставщику удостоверений SAML, и ожидает ответа SAML. На следующей схеме:
- Приложение инициирует запрос авторизации в Azure AD B2C. Приложение может быть приложением OAuth 2.0 или OpenId Connect или поставщиком услуг SAML.
- На странице входа Azure AD B2C пользователь выбирает вход с помощью учетной записи поставщика удостоверений SAML (например, Contoso). Azure AD B2C инициирует запрос авторизации SAML и отправляет пользователя поставщику удостоверений SAML, чтобы завершить вход.
- Провайдер удостоверений SAML возвращает SAML-ответ.
- Azure AD B2C проверяет токен SAML, извлекает утверждения, выдает собственный токен и возвращает пользователя в приложение.
Предпосылки
- Выполните действия, описанные в статье "Начало работы с настраиваемыми политиками в Active Directory B2C". В этом руководстве описано, как обновить пользовательские файлы политики для использования конфигурации клиента Azure AD B2C.
- Если вы еще не зарегистрировали веб-приложение, зарегистрируйте его, выполнив действия, описанные в регистрации веб-приложения.
Компоненты решения
Для этого сценария требуются следующие компоненты:
- Поставщик удостоверений SAML, который способен принимать, декодировать и отвечать на запросы SAML от Azure AD B2C.
- Общедоступная конечная точка метаданных SAML для службы удостоверений.
- Клиент Azure AD B2C.
Это важно
Конечные точки должны соответствовать требованиям безопасности Azure AD B2C. Устаревшие версии TLS и шифры устарели. Для получения дополнительной информации см. требования к TLS и наборам шифров для Azure AD B2C.
Создание ключа политики
Чтобы установить доверие между Azure AD B2C и поставщиком удостоверений SAML, необходимо предоставить действительный сертификат X509 с закрытым ключом. Azure AD B2C подписывает запросы SAML с помощью закрытого ключа сертификата. Поставщик удостоверений проверяет запрос с помощью открытого ключа сертификата. Открытый ключ доступен через метаданные технического профиля. Кроме того, вы можете вручную отправить файл .cer в поставщик удостоверений SAML.
Самозаверяющий сертификат является приемлемым для большинства сценариев. Для рабочих сред рекомендуется использовать сертификат X509, выданный центром сертификации. Кроме того, как описано далее в этом документе, для непроизводственных сред можно отключить подписывание SAML на обеих сторонах.
Получение сертификата
Если у вас еще нет сертификата, можно использовать самозаверяющий сертификат. Самозаверяющий сертификат — это сертификат безопасности, который не подписан центром сертификации (ЦС) и не предоставляет гарантии безопасности сертификата, подписанного ЦС.
В Windows используйте командлет New-SelfSignedCertificate в PowerShell для создания сертификата.
Выполните следующую команду PowerShell, чтобы создать самозаверяющий сертификат. Измените
-Subject
аргумент в соответствии с вашими требованиями для приложения и именем клиента Azure AD B2C, напримерcontosowebapp.contoso.onmicrosoft.com
. Можно также изменить-NotAfter
дату, чтобы указать другой срок действия сертификата.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
На компьютере Windows найдите и выберите пункт "Управление сертификатами пользователей"
В разделе "Сертификаты — текущий пользователь" выберите "Личные>сертификаты>"yourappname.yourtenant.onmicrosoft.com.
Выберите сертификат, затем выберите Действие>Все задачи>Экспорт.
Нажмите кнопку "Далее>да", экспортируйте закрытый ключ>далее.
Примите значения по умолчанию для формата файла экспорта и нажмите кнопку "Далее".
Включите параметр "Пароль" , введите пароль для сертификата и нажмите кнопку "Далее".
Чтобы указать расположение для сохранения сертификата, нажмите кнопку "Обзор " и перейдите в нужный каталог.
В окне "Сохранить как" введите имя файла и нажмите кнопку "Сохранить".
Нажмите кнопку Далее>Готово.
Чтобы Azure AD B2C принял пароль PFX-файла, пароль должен быть зашифрован с помощью параметра TripleDES-SHA1 в служебной программе экспорта хранилища сертификатов Windows, а не AES256-SHA256.
Отправка сертификата
Необходимо сохранить сертификат в клиенте Azure AD B2C.
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
- Выберите все службы в левом верхнем углу портала Azure, а затем найдите и выберите Azure AD B2C.
- На странице "Обзор" выберите Identity Experience Framework.
- Выберите ключи политики и нажмите кнопку "Добавить".
- В разделе "Параметры" выберите
Upload
. - Введите имя для ключа политики. Например:
SAMLSigningCert
. ПрефиксB2C_1A_
добавляется автоматически в имя ключа. - Перейдите к файлу PFX сертификата и выберите его с закрытым ключом.
- Нажмите кнопку Создать.
Настройка технического профиля SAML
Определите поставщика удостоверений SAML, добавив его в элемент ClaimsProviders в файле расширения вашей политики. Поставщики утверждений содержат технический профиль SAML, который определяет конечные точки и протоколы, необходимые для коммуникации с поставщиком удостоверений SAML. Чтобы добавить поставщика утверждений с техническим профилем SAML, выполните следующее:
Откройте TrustFrameworkExtensions.xml.
Найдите элемент ClaimsProviders . Если он не существует, добавьте его в корневой элемент.
Добавьте новый ClaimsProvider следующим образом:
<ClaimsProvider> <Domain>Contoso.com</Domain> <DisplayName>Contoso</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Contoso-SAML2"> <DisplayName>Contoso</DisplayName> <Description>Login with your SAML identity provider account</Description> <Protocol Name="SAML2"/> <Metadata> <Item Key="PartnerEntity">https://your-AD-FS-domain/federationmetadata/2007-06/federationmetadata.xml</Item> </Metadata> <CryptographicKeys> <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="assertionSubjectName" /> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="first_name" /> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="last_name" /> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="http://schemas.microsoft.com/identity/claims/displayname" /> <OutputClaim ClaimTypeReferenceId="email" /> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="contoso.com" /> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
Обновите следующие XML-элементы с соответствующим значением:
XML-элемент | Ценность |
---|---|
ClaimsProvider\Домен | Доменное имя, используемое для прямого входа. Введите доменное имя, которое вы хотите использовать в прямом входе. Например, Contoso.com. |
ТехническийПрофиль\ОтображаемоеИмя | Это значение будет отображаться на кнопке входа на экране входа. Например, Contoso. |
Метаданные\PartnerEntity | URL-адрес метаданных поставщика удостоверений SAML. Кроме того, можно скопировать метаданные поставщика удостоверений и добавить их внутрь элемента CDATA <![CDATA[Your IDP metadata]]> . |
Сопоставление утверждений
Элемент OutputClaims содержит список утверждений, возвращаемых поставщиком удостоверений SAML. Сопоставляйте название требования, определенного в вашей политике, с именем утверждения, определенным в поставщике удостоверений. Проверьте у вашего поставщика удостоверений список утверждений. Дополнительные сведения см. в разделе "Сопоставление утверждений".
В приведенном выше примере Contoso-SAML2 содержатся утверждения, возвращаемые поставщиком удостоверений SAML:
- Утверждение claimSubjectName сопоставляется с утверждением issuerUserId .
- Утверждение first_name сопоставлено с заданным именем.
- Утверждение last_name сопоставляется с утверждением фамилии .
- Утверждение
http://schemas.microsoft.com/identity/claims/displayname
сопоставляется с утверждением displayName . - Утверждение email без ассоциации с именами.
Технический профиль также возвращает утверждения, которые не возвращаются поставщиком удостоверений:
- Утверждение identityProvider , содержащее имя поставщика удостоверений.
- Утверждение authenticationSource со значением по умолчанию socialIdpAuthentication.
Добавление технического профиля сеанса SAML
Если у вас еще нет технического профиля сеанса SM-Saml-idp
SAML, добавьте его в политику расширения.
<ClaimsProviders>
Найдите раздел и добавьте следующий фрагмент XML. Если политика уже содержит SM-Saml-idp
технический профиль, перейдите к следующему шагу. Дополнительные сведения см. в разделе "Управление сеансами единого входа".
<ClaimsProvider>
<DisplayName>Session Management</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SM-Saml-idp">
<DisplayName>Session Management Provider</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="IncludeSessionIndex">false</Item>
<Item Key="RegisterServiceProviders">false</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Добавить пользовательский сценарий
На этом этапе поставщик удостоверений настроен, но он еще не доступен на любой из страниц входа. Если у вас нет собственного пользовательского пути, создайте дубликат существующего пути пользователя шаблона, в противном случае перейдите к следующему шагу.
- Откройте файл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-SAML2" />
</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
.
Настройте поставщика удостоверений SAML
После настройки политики необходимо настроить поставщика удостоверений SAML с помощью метаданных Azure AD B2C SAML. Метаданные SAML — это сведения, используемые в протоколе SAML для предоставления конфигурации политики поставщику услуг. Он определяет расположение служб, таких как вход и выход, сертификаты, метод входа и многое другое.
Каждый поставщик удостоверений SAML требует выполнения различных шагов для настройки поставщика услуг. Некоторые поставщики удостоверений SAML запрашивают метаданные Azure AD B2C, в то время как другие требуют самостоятельно пройтись по файлу метаданных и предоставить сведения. Обратитесь к документации поставщика удостоверений для получения рекомендаций.
В следующем примере показан URL-адрес метаданных SAML технического профиля Azure AD B2C:
https://<your-tenant-name>.b2clogin.com/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
При использовании личного домена используйте следующий формат:
https://your-domain-name/<your-tenant-name>.onmicrosoft.com/<your-policy>/samlp/metadata?idptp=<your-technical-profile>
Замените следующие значения:
- имя клиента с именем клиента, например your-tenant.onmicrosoft.com.
- ваше-доменное-имя с пользовательским доменным именем, например login.contoso.com.
- ваш полис с именем вашего полиса. Например, B2C_1A_signup_signin_adfs.
- ваш технический профиль с именем технического профиля поставщика удостоверений SAML. Например, Contoso-SAML2.
Откройте браузер и перейдите по URL-адресу. Убедитесь, что у вас есть правильный URL-адрес и у вас есть доступ к XML-файлу метаданных.
Проверка настраиваемой политики
- Войдите на портал Azure.
- Если у вас есть доступ к нескольким клиентам, щелкните значок Настройки в верхнем меню, чтобы переключиться на клиент Azure AD B2C из меню Каталоги и подписки.
- В портале Azure найдите и выберите Azure AD B2C.
- В разделе "Политики" выберите Identity Experience Framework
- Выберите политику доверенной стороны, например
B2C_1A_signup_signin
. - Для приложения выберите веб-приложение, которое вы ранее зарегистрировали. В поле URL-адрес ответа должно содержаться значение
https://jwt.ms
. - Нажмите кнопку "Запустить сейчас ".
- На странице регистрации или входа выберите Contoso , чтобы войти с помощью учетной записи Contoso.
Если процесс входа выполнен успешно, браузер перенаправляется на https://jwt.ms
, где отображается содержимое токена, возвращаемого Azure AD B2C.