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


Установка b2clogin.com в качестве URL-адреса перенаправления для Azure Active Directory B2C

Когда вы настраиваете поставщик удостоверений для регистрации и входа в приложении Azure Active Directory B2C (Azure AD B2C), нужно указать конечные точки поставщика удостоверений Azure AD B2C. Теперь вам не нужно указывать в приложениях и интерфейсах API адрес login.microsoftonline.com для проверки подлинности пользователей в Azure AD B2C. Вместо этого используйте b2clogin.com или личный домен для всех приложений.

Какие конечные точки применяются к этим изменениям

Переход на b2clogin.com применяется к конечным точкам проверки подлинности, в которых используются политики Azure AD B2C (потоки пользователей или пользовательские политики) для проверки подлинности пользователей. Эти конечные точки имеют параметр <policy-name>, который указывает политику для использования в Azure AD B2C. Дополнительные сведения о политиках Azure AD B2C.

Старые конечные точки могут выглядеть следующим образом:

  • https://login.microsoft.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://login.microsoft.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/authorize?p=<policy-name>

В этом случае обновленная конечная точка должна выглядеть следующим образом:

  • https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/authorize?p=<policy-name>

В случае личного домена Azure AD B2C соответствующая обновленная конечная точка будет выглядеть следующим образом:

  • https://login.contoso.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/authorize
  • https://login.contoso.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/authorize?p=<policy-name>

Конечные точки, на которые не повлияло изменение

Некоторые клиенты используют общие возможности корпоративных клиентов Microsoft Entra. Например, получение маркера доступа для вызова MS API Graph арендатора Azure AD B2C.

Это изменение не влияет на все конечные точки, которые не содержат параметр политики в URL-адресе. К ним обращаются только login.microsoftonline.com конечные точки идентификатора Microsoft Entra и не могут использоваться с b2clogin.com или пользовательскими доменами. В следующем примере показана допустимая конечная точка маркера платформа удостоверений Майкрософт:

https://login.microsoftonline.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/token

Обзор необходимых изменений

Возможно, потребуется внести несколько изменений для миграции приложений из login.microsoftonline.com с помощью конечных точек Azure AD B2C:

  • Измените URL-адрес перенаправления в приложениях поставщика удостоверений на эталонный b2clogin.com или личный домен. Дополнительные сведения приведены в руководстве Изменение URL-адресов перенаправления поставщика удостоверений.
  • Обновите приложения Azure AD B2C, чтобы использовать b2clogin.com или личный домен в потоках пользователей и ссылках на конечные точки маркеров. Возможно, для этого изменения потребуется обновить механизмы работы с библиотекой проверки подлинности, например, библиотекой проверки подлинности Майкрософт (MSAL).
  • Обновите все разрешенные источники, определенные в параметрах CORS для настройки пользовательского интерфейса.

Изменение URL-адресов перенаправления поставщика удостоверений

На каждом веб-сайте поставщика удостоверений, где вы создали приложение, измените все доверенные URL-адреса перенаправления на your-tenant-name.b2clogin.com или личный домен вместо login.microsoftonline.com.

Для URL-адресов перенаправления b2clogin.com можно использовать два формата. Первый вариант удобен тем, что полностью избавляет от упоминания названия "Майкрософт" в URL-адресе, так как в нем вместо доменного имени арендатора используется идентификатор арендатора (GUID). Обратите внимание, что конечная точка authresp не может содержать имя политики.

https://{your-tenant-name}.b2clogin.com/{your-tenant-id}/oauth2/authresp

Во втором варианте доменное имя арендатора используется в формате your-tenant-name.onmicrosoft.com. Например:

https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp

Для обоих форматов выполните следующее:

  • Замените {your-tenant-name} именем вашего клиента Azure AD B2C.
  • Удалите /te из URL-адреса, если там была эта подстрока.

Обновление приложений и API-интерфейсов

Код в приложениях с поддержкой Azure AD B2C и интерфейсах API может ссылаться на login.microsoftonline.com в нескольких местах. Например, в коде могут быть разные ссылки на потоки пользователей и на конечные точки маркеров. Вместо всех этих упоминаний укажите новую ссылку your-tenant-name.b2clogin.com:

  • Конечная точка авторизации
  • Конечная точка токена
  • Издатель токенов

Например, конечная точка центра для политики регистрации и входа в компании Contoso теперь будет выглядеть так:

https://contosob2c.b2clogin.com/00000000-0000-0000-0000-000000000000/B2C_1_signupsignin1

Сведения о миграции веб-приложений на основе OWIN на адрес b2clogin.com можно найти в статье Перенос веб-API на основе OWIN в b2clogin.com.

Сведения о миграции интерфейсов API в службе "Управление API", защищенных службой AAD B2C, см. в разделе Миграция на b2clogin.com статьи Защита API службы "Управление API Azure" с помощью Azure AD B2C.

Библиотека проверки подлинности Майкрософт (MSAL)

Свойство ValidateAuthority в MSAL.NET

Если вы используете MSAL.NET версии 2 или более ранней, при установке клиента задайте для свойства ValidateAuthority значение false, чтобы разрешить перенаправления на b2clogin.com. Установка этого значения false не требуется для MSAL.NET версии 3 и более поздних версий.

ConfidentialClientApplication client = new ConfidentialClientApplication(...); // Can also be PublicClientApplication
client.ValidateAuthority = false; // MSAL.NET v2 and earlier **ONLY**

Свойство ValidateAuthority в MSAL.NET для JavaScript

Если вы используете MSAL для JavaScript версии 1.2.2 или более ранней, задайте для свойства ValidateAuthority значение false.

// MSAL.js v1.2.2 and earlier
this.clientApplication = new UserAgentApplication(
  env.auth.clientId,
  env.auth.loginAuthority,
  this.authCallback.bind(this),
  {
    validateAuthority: false // Required in MSAL.js v1.2.2 and earlier **ONLY**
  }
);

Если в MSAL.js 1.3.0+ указано значение validateAuthority: true (значение по умолчанию), необходимо также указать допустимый издатель маркера в параметре knownAuthorities:

// MSAL.js v1.3.0+
this.clientApplication = new UserAgentApplication(
  env.auth.clientId,
  env.auth.loginAuthority,
  this.authCallback.bind(this),
  {
    validateAuthority: true, // Supported in MSAL.js v1.3.0+
    knownAuthorities: ['tenant-name.b2clogin.com'] // Required if validateAuthority: true
  }
);

Следующие шаги

Сведения о миграции веб-приложений на основе OWIN на адрес b2clogin.com можно найти в статье Перенос веб-API на основе OWIN в b2clogin.com.

Сведения о миграции интерфейсов API в службе "Управление API", защищенных службой AAD B2C, см. в разделе Миграция на b2clogin.com статьи Защита API службы "Управление API Azure" с помощью Azure AD B2C.