Share via


Azure Active Directory B2C의 리디렉션 URL을 b2clogin.com으로 설정

Azure AD B2C(Azure Active Directory B2C) 애플리케이션의 등록 및 로그인을 위한 ID 공급자를 설정하는 경우 Azure AD B2C 공급자의 엔드포인트를 지정해야 합니다. Azure AD B2C를 통해 사용자를 인증하기 위해 애플리케이션의 애플리케이션 및 API에서 login.microsoftonline.com을 참조하지 않아야 합니다. 대신 모든 애플리케이션에 b2clogin.com 또는 사용자 지정 도메인을 사용합니다.

이 변경 내용이 적용되는 엔드포인트

b2clogin.com으로의 전환은 사용자 인증에 Azure AD B2C 정책(사용자 흐름 또는 사용자 지정 정책)을 사용하는 인증 엔드포인트에만 적용됩니다. 이러한 엔드포인트에는 Azure AD B2C가 사용해야 하는 정책을 지정하는 <policy-name> 매개 변수가 있습니다. Azure AD B2C 정책에 대해 자세히 알아보세요.

이전 엔드포인트는 다음과 같습니다.

  • /authorize 엔드포인트에 대한 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>
  • /logout 엔드포인트에 대한 https://login.microsoft.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/logout 또는 https://login.microsoft.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/logout?p=<policy-name>

업데이트된 해당 엔드포인트는 다음 엔드포인트와 유사합니다.

  • /authorize 엔드포인트에 대한 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>
  • /logout 엔드포인트에 대한 https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/logout 또는 https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/logout?p=<policy-name>

Azure AD B2C 사용자 지정 도메인을 사용하면 업데이트된 해당 엔드포인트는 다음 엔드포인트와 유사합니다. 다음 엔드포인트 중 하나를 사용할 수 있습니다.

  • /authorize 엔드포인트에 대한 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>
  • /logout 엔드포인트에 대한 https://login.contoso.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/logout 또는 https://login.contoso.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/logout?p=<policy-name>

영향을 받지 않는 엔드포인트

일부 고객은 Microsoft Entra 엔터프라이즈 테넌트의 공유 기능을 사용합니다. 예를 들어 액세스 토큰을 획득하여 Azure AD B2C 테넌트의 MS Graph API를 호출합니다.

이 변경 내용은 URL에 정책 매개 변수를 포함하지 않는 모든 엔드포인트에 영향을 주지 않습니다. Microsoft Entra ID의 login.microsoftonline.com 엔드포인트를 통해서만 액세스되며 b2clogin.com 또는 사용자 지정 도메인에서는 사용할 수 없습니다. 다음 예제에서는 Microsoft ID 플랫폼의 유효한 토큰 엔드포인트를 보여줍니다.

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

그러나 사용자를 인증하기 위한 토큰만 가져오려는 경우 애플리케이션에서 사용자를 인증하는 데 사용할 정책을 지정할 수 있습니다. 이 경우 업데이트된 /token 엔드포인트는 다음 예제와 유사합니다.

  • b2clogin.com을 사용하는 경우 https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/token 또는 https://<tenant-name>.b2clogin.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/token?p=<policy-name>

  • 사용자 지정 도메인을 사용하는 경우 https://login.contoso.com/<tenant-name>.onmicrosoft.com/<policy-name>/oauth2/v2.0/token 또는 https://login.contoso.com/<tenant-name>.onmicrosoft.com/oauth2/v2.0/token?p=<policy-name>

필수 변경 사항 개요

Azure AD B2C 엔드포인트를 사용하여 login.microsoftonline.com에서 애플리케이션을 마이그레이션하려면 몇 가지 수정이 필요할 수 있습니다.

  • ID 공급자 애플리케이션의 리디렉션 URL을 b2clogin.com 또는 사용자 지정 도메인을 참조하도록 변경합니다. 자세한 내용은 ID 공급자 리디렉션 URL 변경 지침을 따르세요.
  • 사용자 흐름 및 토큰 엔드포인트 참조에서 b2clogin.com 또는 사용자 지정 도메인을 사용하도록 Azure AD B2C 애플리케이션을 업데이트합니다. 변경 내용에는 MSAL(Microsoft 인증 라이브러리)과 같은 인증 라이브러리의 사용 업데이트가 포함될 수 있습니다.
  • 사용자 인터페이스 사용자 지정의 CORS 설정에서 정의한 허용된 원본을 업데이트합니다.

ID 공급자 리디렉션 URL 변경

애플리케이션을 만든 각 ID 공급자의 웹 사이트에서 모든 신뢰할 수 있는 URL을 login.microsoftonline.com 대신 your-tenant-name.b2clogin.com 또는 사용자 지정 도메인으로 리디렉션하도록 변경합니다.

b2clogin.com 리디렉션 URL에 사용할 수 있는 두 가지 형식이 있습니다. 첫 번째 형식에는 테넌트 도메인 이름 대신 테넌트 ID(GUID)를 사용하여 URL의 어디에도 “Microsoft”가 표시되지 않도록 하는 이점이 있습니다. 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 테넌트의 이름으로 바꿉니다.
  • URL에 /te가 있는 경우 제거합니다.

애플리케이션 및 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으로 마이그레이션하는 방법은 OWIN 기반 웹 API를 b2clogin.com으로 마이그레이션을 참조하세요.

Azure AD B2C로 보호되는 Azure API Management API를 마이그레이션하려면 Azure AD B2C를 통한 Azure API Management API 보호 섹션의 b2clogin.com으로 마이그레이션을 참조하세요.

MSAL(Microsoft 인증 라이브러리)

MSAL.NET ValidateAuthority 속성

MSAL.NET v2 이하 버전을 사용하는 경우 클라이언트 인스턴스화에서 ValidateAuthority 속성을 false로 설정하여 b2clogin.com으로 리디렉션을 허용합니다. MSAL.NET v3 이상 버전에서는 이 값을 false로 설정할 필요가 없습니다.

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

MSAL for JavaScript validateAuthority 속성

MSAL for JavaScript v1.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으로 마이그레이션하는 방법은 OWIN 기반 웹 API를 b2clogin.com으로 마이그레이션을 참조하세요.

Azure AD B2C로 보호되는 Azure API Management API를 마이그레이션하려면 Azure AD B2C를 통한 Azure API Management API 보호 섹션의 b2clogin.com으로 마이그레이션을 참조하세요.