Начало работы с настраиваемыми политиками в Azure Active Directory B2CGet started with custom policies in Azure Active Directory B2C

Примечание

В Azure Active Directory B2C пользовательские политики преимущественно предназначены для выполнения сложных сценариев.In Azure Active Directory B2C, custom policies are designed primarily to address complex scenarios. В большинстве случаев рекомендуется использовать встроенные пользовательские потоки.For most scenarios, we recommend that you use built-in user flows.

Настраиваемые политики — это файлы конфигурации, определяющие поведение вашего клиента Azure Active Directory B2C (Azure AD B2C).Custom policies are configuration files that define the behavior of your Azure Active Directory B2C (Azure AD B2C) tenant. В рамках этой статьи вы создадите настраиваемую политику, которая будет поддерживать регистрацию и вход с помощью локальной учетной записи с использованием адреса электронной почты и пароля.In this article, you create a custom policy that supports local account sign-up or sign-in by using an email address and password. Вы также можете подготовить среду для добавления поставщиков удостоверений.You also prepare your environment for adding identity providers.

Предварительные требованияPrerequisites

  • Если у вас еще нет клиента Azure AD B2C, создайте его. Он должен быть связан с вашей подпиской Azure.If you don't have one already, create an Azure AD B2C tenant that is linked to your Azure subscription.
  • Зарегистрируйте свое приложение в созданном клиенте, чтобы оно могло обмениваться данными с Azure AD B2C.Register your application in the tenant that you created so that it can communicate with Azure AD B2C.
  • Выполните действия, описанные в статье Настройка регистрации и входа с помощью учетной записи Facebook, чтобы настроить приложение Facebook.Complete the steps in Set up sign-up and sign-in with a Facebook account to configure a Facebook application. Хотя приложение Facebook не обязательно для использования настраиваемых политик, оно используется в этом пошаговом руководстве для демонстрации возможности входа через социальную сеть в настраиваемой политике.Although a Facebook application is not required for using custom policies, it's used in this walkthrough to demonstrate enabling social login in a custom policy.

Добавление ключей подписи и шифрованияAdd signing and encryption keys

  1. Войдите на портал Azure.Sign in to the Azure portal.
  2. Выберите значок Каталог и подписка в верхней панели инструментов портала, а затем выберите каталог, содержащий клиент Azure AD B2C.Select the Directory + Subscription icon in the portal toolbar, and then select the directory that contains your Azure AD B2C tenant.
  3. На портале Azure найдите и выберите Azure AD B2C.In the Azure portal, search for and select Azure AD B2C.
  4. На странице "Обзор" в разделе Политики выберите Identity Experience Framework.On the overview page, under Policies, select Identity Experience Framework.

Создание ключа подписиCreate the signing key

  1. Выберите Ключи политики, а затем щелкните Добавить.Select Policy Keys and then select Add.
  2. Для пункта Параметры выберите Generate.For Options, choose Generate.
  3. В разделе Имя введите TokenSigningKeyContainer.In Name, enter TokenSigningKeyContainer. Префикс B2C_1A_ может быть добавлен автоматически.The prefix B2C_1A_ might be added automatically.
  4. Для параметра Тип ключа выберите RSA.For Key type, select RSA.
  5. Для параметра Использование ключа выберите Подпись.For Key usage, select Signature.
  6. Нажмите кнопку создания.Select Create.

Создание ключа шифрованияCreate the encryption key

  1. Выберите Ключи политики, а затем щелкните Добавить.Select Policy Keys and then select Add.
  2. Для пункта Параметры выберите Generate.For Options, choose Generate.
  3. В разделе Имя введите TokenEncryptionKeyContainer.In Name, enter TokenEncryptionKeyContainer. Префикс B2C_1A_ может быть добавлен автоматически.The prefix B2C_1A_ might be added automatically.
  4. Для параметра Тип ключа выберите RSA.For Key type, select RSA.
  5. Для параметра Использование ключа задайте значение Шифрование.For Key usage, select Encryption.
  6. Нажмите кнопку создания.Select Create.

Создание ключа FacebookCreate the Facebook key

Добавьте секрет приложения Facebook в качестве ключа политики.Add your Facebook application's App Secret as a policy key. Вы можете использовать секрет созданного приложения, чтобы выполнить одно из предварительных требований, описанных в этой статье.You can use the App Secret of the application you created as part of this article's prerequisites.

  1. Выберите Ключи политики, а затем щелкните Добавить.Select Policy Keys and then select Add.
  2. Для пункта Параметры выберите Manual.For Options, choose Manual.
  3. Для параметра Имя введите FacebookSecret.For Name, enter FacebookSecret. Префикс B2C_1A_ может быть добавлен автоматически.The prefix B2C_1A_ might be added automatically.
  4. В поле Секрет введите секрет приложения Facebook, указанный на сайте developers.facebook.com.In Secret, enter your Facebook application's App Secret from developers.facebook.com. Обратите внимание, что это секрет, а не идентификатор приложения.This value is the secret, not the application ID.
  5. Для параметра Использование ключа выберите Подпись.For Key usage, select Signature.
  6. Нажмите кнопку создания.Select Create.

Регистрация приложений инфраструктуры процедур идентификацииRegister Identity Experience Framework applications

Для Azure AD B2C необходимо зарегистрировать два приложения, которые используются для регистрации и входа пользователей с помощью локальных учетных записей: IdentityExperienceFramework (веб-API) и ProxyIdentityExperienceFramework (нативное приложение) с делегированным разрешением приложению IdentityExperienceFramework.Azure AD B2C requires you to register two applications that it uses to sign up and sign in users with local accounts: IdentityExperienceFramework, a web API, and ProxyIdentityExperienceFramework, a native app with delegated permission to the IdentityExperienceFramework app. Пользователи могут зарегистрироваться с помощью адреса электронной почты или имени пользователя и пароля для доступа к зарегистрированным в клиенте приложениям, в результате чего создается "локальная учетная запись".Your users can sign up with an email address or username and a password to access your tenant-registered applications, which creates a "local account." Локальные учетные записи хранятся только в клиенте Azure AD B2C.Local accounts exist only in your Azure AD B2C tenant.

Эти два приложения нужно зарегистрировать в клиенте Azure AD B2C только один раз.You need to register these two applications in your Azure AD B2C tenant only once.

Регистрация приложения IdentityExperienceFrameworkRegister the IdentityExperienceFramework application

Чтобы зарегистрировать приложение в Azure AD B2C клиенте, можно использовать интерфейс Регистрация приложений .To register an application in your Azure AD B2C tenant, you can use the App registrations experience.

  1. Щелкните Регистрация приложений и выберите Новая регистрация.Select App registrations, and then select New registration.
  2. Для параметра Имя введите IdentityExperienceFramework.For Name, enter IdentityExperienceFramework.
  3. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.Under Supported account types, select Accounts in this organizational directory only.
  4. В разделе URI перенаправления выберите Интернет и введите https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, где your-tenant-name — это доменное имя вашего клиента Azure AD B2C.Under Redirect URI, select Web, and then enter https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com, where your-tenant-name is your Azure AD B2C tenant domain name.
  5. В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.Under Permissions, select the Grant admin consent to openid and offline_access permissions check box.
  6. Выберите Зарегистрировать.Select Register.
  7. Запишите значение параметра Идентификатор приложения (клиент) . Оно вам потребуется в дальнейшем.Record the Application (client) ID for use in a later step.

Затем задайте API, добавив область:Next, expose the API by adding a scope:

  1. В меню слева в разделе Управлениевыберите предоставить API.In the left menu, under Manage, select Expose an API.
  2. Выберите Добавить область и щелкните Сохранить и продолжить, чтобы принять URI идентификатора приложения по умолчанию.Select Add a scope, then select Save and continue to accept the default application ID URI.
  3. Введите следующие значения, чтобы создать область, которая разрешает выполнение настраиваемых политик в клиенте Azure AD B2C:Enter the following values to create a scope that allows custom policy execution in your Azure AD B2C tenant:
    • Имя области: user_impersonationScope name: user_impersonation
    • Отображаемое имя согласия администратора: Access IdentityExperienceFrameworkAdmin consent display name: Access IdentityExperienceFramework
    • Описание согласия администратора: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.Admin consent description: Allow the application to access IdentityExperienceFramework on behalf of the signed-in user.
  4. Выберите Добавить область.Select Add scope

Регистрация приложения ProxyIdentityExperienceFrameworkRegister the ProxyIdentityExperienceFramework application

  1. Щелкните Регистрация приложений и выберите Новая регистрация.Select App registrations, and then select New registration.
  2. Для параметра Имя введите ProxyIdentityExperienceFramework.For Name, enter ProxyIdentityExperienceFramework.
  3. В разделе Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации.Under Supported account types, select Accounts in this organizational directory only.
  4. В разделе URI перенаправления в раскрывающемся списке выберите Общедоступный/собственный клиент (мобильный и классический) .Under Redirect URI, use the drop-down to select Public client/native (mobile & desktop).
  5. В поле URI перенаправления введите myapp://auth.For Redirect URI, enter myapp://auth.
  6. В разделе Разрешения установите флажок Предоставьте согласие администратора для разрешений openid и offline_access.Under Permissions, select the Grant admin consent to openid and offline_access permissions check box.
  7. Выберите Зарегистрировать.Select Register.
  8. Запишите значение параметра Идентификатор приложения (клиент) . Оно вам потребуется в дальнейшем.Record the Application (client) ID for use in a later step.

Затем укажите, что приложение должно считаться общедоступным клиентом:Next, specify that the application should be treated as a public client:

  1. В меню слева в разделе Управлениевыберите Проверка подлинности.In the left menu, under Manage, select Authentication.
  2. В разделе Дополнительные параметры включите параметр Считать приложение общедоступным клиентом (выберите Да).Under Advanced settings, enable Treat application as a public client (select Yes). Убедитесь, что в манифесте приложения указана строка "allowPublicClient": true.Ensure that "allowPublicClient": true is set in the application manifest.
  3. Щелкните Сохранить.Select Save.

Теперь предоставьте разрешения для области API, которую вы указали ранее при регистрации IdentityExperienceFramework:Now, grant permissions to the API scope you exposed earlier in the IdentityExperienceFramework registration:

  1. В меню слева в разделе Управлениевыберите разрешения API.In the left menu, under Manage, select API permissions.
  2. В разделе Настроенные разрешения выберите Добавить разрешение.Under Configured permissions, select Add a permission.
  3. Перейдите на вкладку Мои API и выберите приложение IdentityExperienceFramework.Select the My APIs tab, then select the IdentityExperienceFramework application.
  4. В разделе Разрешение выберите определенную ранее область user_impersonation.Under Permission, select the user_impersonation scope that you defined earlier.
  5. Выберите Добавить разрешения.Select Add permissions. В соответствии с инструкциями подождите несколько минут, прежде чем перейти к следующему шагу.As directed, wait a few minutes before proceeding to the next step.
  6. Выберите Предоставить согласие администратора для (имя арендатора) .Select Grant admin consent for (your tenant name).
  7. Выберите учетную запись администратора, с которой выполнен вход, или выполните вход с учетной записью в арендаторе Azure AD B2C, которой назначена по крайней мере роль Администратор облачных приложений.Select your currently signed-in administrator account, or sign in with an account in your Azure AD B2C tenant that's been assigned at least the Cloud application administrator role.
  8. Нажмите кнопку Принять.Select Accept.
  9. Выберите Обновитьи убедитесь, что "предоставлено..." отображается в разделе состояние областей — offline_access, openid connect и user_impersonation.Select Refresh, and then verify that "Granted for ..." appears under Status for the scopes - offline_access, openid and user_impersonation. Распространение разрешений может занять несколько минут.It might take a few minutes for the permissions to propagate.

Начальный пакет настраиваемых политикCustom policy starter pack

Настраиваемые политики представляют собой набор XML-файлов, которые вы отправляете в клиент Azure AD B2C для определения технических профилей и путей взаимодействия пользователей.Custom policies are a set of XML files you upload to your Azure AD B2C tenant to define technical profiles and user journeys. Мы предоставляем начальные пакеты с несколькими готовыми политиками, чтобы вы могли сразу приступить к работе.We provide starter packs with several pre-built policies to get you going quickly. Каждый начальный пакет содержит минимальное количество технических профилей и путей взаимодействия пользователей, необходимых для достижения описанных сценариев:Each of these starter packs contains the smallest number of technical profiles and user journeys needed to achieve the scenarios described:

  • LocalAccounts позволяет использовать только локальные учетные записи.LocalAccounts - Enables the use of local accounts only.
  • SocialAccounts позволяет использовать только учетные записи социальных сетей (или федеративные).SocialAccounts - Enables the use of social (or federated) accounts only.
  • SocialAndLocalAccounts позволяет использовать и локальные учетные записи, и учетные записи социальных сетей.SocialAndLocalAccounts - Enables the use of both local and social accounts.
  • SocialAndLocalAccountsWithMFA позволяет использовать локальные учетные записи и учетные записи социальных сетей с многофакторной проверкой подлинности.SocialAndLocalAccountsWithMFA - Enables social, local, and multi-factor authentication options.

Каждый начальный пакет содержит:Each starter pack contains:

  • Базовый файл, в который нужно внести несколько изменений.Base file - Few modifications are required to the base. Пример TrustFrameworkBase.xmlExample: TrustFrameworkBase.xml
  • Файл расширения, в который вносится большинство изменений конфигурации.Extension file - This file is where most configuration changes are made. Пример TrustFrameworkExtensions.xmlExample: TrustFrameworkExtensions.xml
  • Файлы проверяющей стороны, которые вызывает приложение для выполнения определенных задач.Relying party files - Task-specific files called by your application. Примеры: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xmlExamples: SignUpOrSignin.xml, ProfileEdit.xml, PasswordReset.xml

Вы этой статье вы измените XML-файлы настраиваемой политики в начальном пакете SocialAndLocalAccounts.In this article, you edit the XML custom policy files in the SocialAndLocalAccounts starter pack. Если вам нужен редактор XML, попробуйте Visual Studio Code — упрощенный кроссплатформенный редактор.If you need an XML editor, try Visual Studio Code, a lightweight cross-platform editor.

Получение начального пакетаGet the starter pack

Скачайте начальные пакеты настраиваемых политик из GitHub, а затем обновите XML-файлы в начальном пакете SocialAndLocalAccounts, указав имя своего клиента Azure AD B2C.Get the custom policy starter packs from GitHub, then update the XML files in the SocialAndLocalAccounts starter pack with your Azure AD B2C tenant name.

  1. Скачайте ZIP-файл или клонируйте репозиторий:Download the .zip file or clone the repository:

    git clone https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
    
  2. Во всех файлах в каталоге SocialAndLocalAccounts замените строку yourtenant именем своего клиента Azure AD B2C.In all of the files in the SocialAndLocalAccounts directory, replace the string yourtenant with the name of your Azure AD B2C tenant.

    Например, если ваш клиент B2C имеет имя contosotenant, все экземпляры yourtenant.onmicrosoft.com должны иметь вид contosotenant.onmicrosoft.com.For example, if the name of your B2C tenant is contosotenant, all instances of yourtenant.onmicrosoft.com become contosotenant.onmicrosoft.com.

Добавление идентификаторов приложений в настраиваемую политикуAdd application IDs to the custom policy

В файл расширений TrustFrameworkExtensions добавьте идентификаторы приложений.Add the application IDs to the extensions file TrustFrameworkExtensions.xml.

  1. Откройте SocialAndLocalAccounts/TrustFrameworkExtensions.xml и найдите элемент <TechnicalProfile Id="login-NonInteractive">.Open SocialAndLocalAccounts/TrustFrameworkExtensions.xml and find the element <TechnicalProfile Id="login-NonInteractive">.
  2. Замените оба экземпляра IdentityExperienceFrameworkAppId идентификатором созданного ранее приложения IdentityExperienceFramework.Replace both instances of IdentityExperienceFrameworkAppId with the application ID of the IdentityExperienceFramework application that you created earlier.
  3. Замените оба экземпляра ProxyIdentityExperienceFrameworkAppId идентификатором созданного ранее приложения ProxyIdentityExperienceFramework.Replace both instances of ProxyIdentityExperienceFrameworkAppId with the application ID of the ProxyIdentityExperienceFramework application that you created earlier.
  4. Сохраните файл.Save the file.

Отправка политикUpload the policies

  1. Выберите пункт меню Identity Experience Framework в своем клиенте B2C на портале Azure.Select the Identity Experience Framework menu item in your B2C tenant in the Azure portal.
  2. Выберите Отправить настраиваемую политику.Select Upload custom policy.
  3. Отправьте файлы политики в следующем порядке:In this order, upload the policy files:
    1. TrustFrameworkBase.xmlTrustFrameworkBase.xml
    2. TrustFrameworkExtensions.xmlTrustFrameworkExtensions.xml
    3. SignUpOrSignin.xmlSignUpOrSignin.xml
    4. ProfileEdit.xmlProfileEdit.xml
    5. PasswordReset.xmlPasswordReset.xml

При отправке файлов в Azure к каждому из них добавляется префикс B2C_1A_.As you upload the files, Azure adds the prefix B2C_1A_ to each.

Совет

Если в редакторе XML поддерживается проверка, проверьте файлы с помощью XML-файла схемы TrustFrameworkPolicy_0.3.0.0.xsd, который расположен в корневом каталоге начального пакета.If your XML editor supports validation, validate the files against the TrustFrameworkPolicy_0.3.0.0.xsd XML schema that is located in the root directory of the starter pack. При проверке по схеме XML определяются ошибки перед отправкой.XML schema validation identifies errors before uploading.

Проверка пользовательской политикиTest the custom policy

  1. В разделе Настраиваемые политики выберите B2C_1A_signup_signin.Under Custom policies, select B2C_1A_signup_signin.
  2. Для параметра Выбор приложения на странице сведений о настраиваемой политике выберите зарегистрированное ранее веб-приложение с именем webapp1.For Select application on the overview page of the custom policy, select the web application named webapp1 that you previously registered.
  3. Убедитесь, что для параметра URL-адрес ответа выбрано значение https://jwt.ms.Make sure that the Reply URL is https://jwt.ms.
  4. Выберите Запустить сейчас.Select Run now.
  5. Зарегистрируйтесь с помощью адреса электронной почты.Sign up using an email address.
  6. Снова выберите Запустить сейчас.Select Run now again.
  7. Войдите в систему с помощью той же учетной записи, чтобы подтвердить правильность конфигурации.Sign in with the same account to confirm that you have the correct configuration.

Добавление Facebook в качестве поставщика удостоверенийAdd Facebook as an identity provider

Как было сказано в разделе Предварительные требования, вам не нужен доступ к Facebook для использования настраиваемых политик. Здесь он используется для демонстрации возможности федеративного входа через социальные сети в настраиваемых политиках.As mentioned in Prerequisites, Facebook is not required for using custom policies, but is used here to demonstrate how you can enable federated social login in a custom policy.

  1. В файле SocialAndLocalAccounts/TrustFrameworkExtensions.xml замените значение client_id идентификатором приложения Facebook:In the SocialAndLocalAccounts/TrustFrameworkExtensions.xml file, replace the value of client_id with the Facebook application ID:

    <TechnicalProfile Id="Facebook-OAUTH">
      <Metadata>
      <!--Replace the value of client_id in this technical profile with the Facebook app ID"-->
        <Item Key="client_id">00000000000000</Item>
    
  2. Отправьте файл TrustFrameworkExtensions.xml в клиент.Upload the TrustFrameworkExtensions.xml file to your tenant.

  3. В разделе Настраиваемые политики выберите B2C_1A_signup_signin.Under Custom policies, select B2C_1A_signup_signin.

  4. Щелкните Запустить сейчас и выберите Facebook, чтобы войти с учетной записью Facebook и проверить работу настраиваемой политики.Select Run now and select Facebook to sign in with Facebook and test the custom policy.

Дальнейшие действияNext steps

Попытайтесь добавить Azure Active Directory (Azure AD) в качестве поставщика удостоверений.Next, try adding Azure Active Directory (Azure AD) as an identity provider. В базовом файле, который использовался в этом руководстве по началу работы, уже есть некоторое содержимое, необходимое для добавления других поставщиков удостоверений (например, Azure AD).The base file used in this getting started guide already contains some of the content that you need for adding other identity providers like Azure AD.

Сведения о настройке Azure AD в качестве поставщика удостоверений см. в статье Настройка регистрации и входа с помощью учетной записи Azure Active Directory с использованием настраиваемых политик Active Directory B2C.For information about setting up Azure AD as and identity provider, see Set up sign-up and sign-in with an Azure Active Directory account using Active Directory B2C custom policies.