Ustawianie adresów URL przekierowania na b2clogin.com dla usługi Azure Active Directory B2C

Podczas konfigurowania dostawcy tożsamości na potrzeby rejestracji i logowania w aplikacjach usługi Azure Active Directory B2C (Azure AD B2C) należy określić punkty końcowe dostawcy tożsamości usługi Azure AD B2C. Nie należy już odwoływać się do login.microsoftonline.com w aplikacjach i interfejsach API na potrzeby uwierzytelniania użytkowników za pomocą usługi Azure AD B2C. Zamiast tego należy użyć b2clogin.com lub domeny niestandardowej dla wszystkich aplikacji.

Jakie punkty końcowe mają zastosowanie do tych zmian

Przejście do b2clogin.com dotyczy tylko punktów końcowych uwierzytelniania korzystających z zasad usługi Azure AD B2C (przepływów użytkowników lub zasad niestandardowych) do uwierzytelniania użytkowników. Te punkty końcowe mają parametr, który określa zasady, które powinny być używane przez usługę <policy-name> Azure AD B2C. Dowiedz się więcej o zasadach usługi Azure AD B2C.

Stare punkty końcowe mogą wyglądać następująco:

  • 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>

Odpowiedni zaktualizowany punkt końcowy wygląda następująco:

  • 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>

W przypadku domeny niestandardowej usługi Azure AD B2C odpowiedni zaktualizowany punkt końcowy wygląda następująco:

  • 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>

Punkty końcowe, których nie dotyczy problem

Niektórzy klienci korzystają z udostępnionych możliwości dzierżaw firmy Microsoft Entra Enterprise. Na przykład uzyskanie tokenu dostępu w celu wywołania interfejsu API programu MS Graph dzierżawy usługi Azure AD B2C.

Ta zmiana nie ma wpływu na wszystkie punkty końcowe, które nie zawierają parametru zasad w adresie URL. Są one dostępne tylko przy użyciu login.microsoftonline.com punktów końcowych identyfikatora entra firmy Microsoft i nie mogą być używane z b2clogin.com lub domenami niestandardowymi. W poniższym przykładzie przedstawiono prawidłowy punkt końcowy tokenu Platforma tożsamości Microsoft:

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

Omówienie wymaganych zmian

Może być konieczne wprowadzenie kilku modyfikacji w celu przeprowadzenia migracji aplikacji z login.microsoftonline.com przy użyciu punktów końcowych usługi Azure AD B2C:

  • Zmień adres URL przekierowania w aplikacjach dostawcy tożsamości, aby odwoływać się do b2clogin.com lub domeny niestandardowej. Aby uzyskać więcej informacji, postępuj zgodnie ze wskazówkami dotyczącymi przekierowywania adresów URL dostawcy tożsamości.
  • Zaktualizuj aplikacje usługi Azure AD B2C, aby korzystały z b2clogin.com lub domeny niestandardowej w odwołaniach do przepływu użytkownika i punktu końcowego tokenu. Zmiana może obejmować aktualizowanie korzystania z biblioteki uwierzytelniania, takiej jak Biblioteka uwierzytelniania firmy Microsoft (MSAL).
  • Zaktualizuj wszystkie dozwolone źródła zdefiniowane w ustawieniach mechanizmu CORS na potrzeby dostosowywania interfejsu użytkownika.

Zmienianie adresów URL przekierowania dostawcy tożsamości

W witrynie internetowej każdego dostawcy tożsamości, w której utworzono aplikację, zmień wszystkie zaufane adresy URL, aby przekierować do your-tenant-name.b2clogin.comdomeny lub domeny niestandardowej zamiast login.microsoftonline.com.

Istnieją dwa formaty, których można użyć dla adresów URL przekierowania b2clogin.com. Pierwsza z nich zapewnia korzyść, że pozycja "Microsoft" nie jest wyświetlana w dowolnym miejscu w adresie URL przy użyciu identyfikatora dzierżawy (identyfikatora GUID) zamiast nazwy domeny dzierżawy. Uwaga: authresp punkt końcowy może nie zawierać nazwy zasad.

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

Druga opcja używa nazwy domeny dzierżawy w postaci your-tenant-name.onmicrosoft.com. Na przykład:

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

Dla obu formatów:

  • Zastąp {your-tenant-name} ciąg nazwą dzierżawy usługi Azure AD B2C.
  • Usuń /te , jeśli istnieje w adresie URL.

Aktualizowanie aplikacji i interfejsów API

Kod w aplikacjach i interfejsach API z obsługą usługi Azure AD B2C może się odwoływać login.microsoftonline.com w kilku miejscach. Na przykład kod może zawierać odwołania do przepływów użytkownika i punktów końcowych tokenu. Zaktualizuj następujące elementy, aby zamiast tego odwołać się do elementu your-tenant-name.b2clogin.com:

  • Punkt końcowy autoryzacji
  • Punkt końcowy tokenu
  • Wystawca tokenu

Na przykład punkt końcowy urzędu dla zasad rejestracji/logowania firmy Contoso będzie teraz:

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

Aby uzyskać informacje na temat migrowania aplikacji internetowych opartych na protokole OWIN do b2clogin.com, zobacz Migrowanie internetowego interfejsu API opartego na protokole OWIN do b2clogin.com.

Aby przeprowadzić migrację interfejsów API usługi Azure API Management chronionych przez usługę Azure AD B2C, zobacz sekcję Migrate to b2clogin.com (Migrowanie do b2clogin.com ) w temacie Secure an Azure API Management API with Azure AD B2C (Zabezpieczanie interfejsu API usługi Azure API Management przy użyciu usługi Azure AD B2C).

Biblioteka uwierzytelniania firmy Microsoft (MSAL)

MSAL.NET właściwość ValidateAuthority

Jeśli używasz MSAL.NET w wersji 2 lub starszej, ustaw właściwość ValidateAuthority na false wartość w przypadku wystąpienia klienta, aby zezwolić przekierowaniom na b2clogin.com. Ustawienie tej wartości na false nie jest wymagane dla MSAL.NET w wersji 3 lub nowszej.

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

Biblioteka MSAL dla właściwości ValidateAuthority języka JavaScript

Jeśli używasz biblioteki MSAL dla języka JavaScript w wersji 1.2.2 lub starszej , ustaw właściwość validateAuthority na falsewartość .

// 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**
  }
);

W przypadku ustawienia w pliku validateAuthority: true MSAL.js 1.3.0+ (wartość domyślna) należy również określić prawidłowego wystawcę tokenu za pomocą knownAuthoritiespolecenia :

// 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
  }
);

Następne kroki

Aby uzyskać informacje na temat migrowania aplikacji internetowych opartych na protokole OWIN do b2clogin.com, zobacz Migrowanie internetowego interfejsu API opartego na protokole OWIN do b2clogin.com.

Aby przeprowadzić migrację interfejsów API usługi Azure API Management chronionych przez usługę Azure AD B2C, zobacz sekcję Migrate to b2clogin.com (Migrowanie do b2clogin.com ) w temacie Secure an Azure API Management API with Azure AD B2C (Zabezpieczanie interfejsu API usługi Azure API Management przy użyciu usługi Azure AD B2C).