Azure Active Directory B2C の b2clogin.com にリダイレクト URL を設定する

Azure Active Directory B2C (Azure AD B2C) アプリケーションへのサインアップおよびサインイン用に ID プロバイダーを設定する際に、Azure AD B2C ID プロバイダーのエンドポイントを指定する必要があります。 Azure AD B2C でユーザーを認証する際に、アプリケーションと API で login.microsoftonline.com を今後は参照しないでください。 代わりに、すべてのアプリケーションに b2clogin.com または カスタム ドメイン を使用します。

この変更が適用されるエンドポイント

b2clogin.com への移行は、ユーザーを認証するために Azure AD B2C ポリシー (ユーザー フローまたはカスタム ポリシー) を使用する認証エンドポイントにのみ適用されます。 これらのエンドポイントには、Azure AD B2C で使用するポリシーを指定する <policy-name> パラメーターがあります。 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 エンタープライズ テナントの共有機能を使用するお客様もいます。 たとえば、Azure AD B2C テナントの MS Graph API を呼び出すアクセス トークンを取得します。

この変更は、URL にポリシー パラメーターが含まれていないすべてのエンドポイントには影響しません。 これらは Microsoft Entra ID の login.microsoftonline.com エンドポイントでのみアクセスされ、 b2clogin.com またはカスタム ドメインでは使用できません。 次の例は、Microsoft identity プラットフォームの有効なトークン エンドポイントを示しています:

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

必要な変更の概要

Azure AD B2C エンドポイントを使用してアプリケーションを login.microsoftonline.com から移行するために、いくつかの変更が必要になる場合があります:

  • ID プロバイダーのアプリケーション内のリダイレクト URL を、b2clogin.com またはカスタム ドメインを参照するように変更します。 詳細については、ID プロバイダーのリダイレクト URL の変更に関するガイダンスに従ってください。
  • お使いの Azure AD B2C アプリケーションのユーザー フロー参照とトークン エンドポイントの参照で、b2clogin.com またはカスタム ドメインを使用するように更新します。 この変更には、使用している Microsoft Authentication Library (MSAL) などの認証ライブラリを更新することが含まれる場合があります。
  • ユーザー インターフェイスのカスタマイズの CORS 設定に定義されている許可されたオリジンを更新します。

ID プロバイダーのリダイレクト URL を変更する

アプリケーションを作成した各 ID プロバイダーの Web サイトで、すべての信頼された URL を login.microsoftonline.com ではなく your-tenant-name.b2clogin.com またはカスタム ドメインにリダイレクトするように変更します。

b2clogin.com リダイレクト URL には、2 つの形式を使用できます。 1 つ目には、テナント ドメイン名の代わりにテナント ID (GUID) を使用することで、URL のどこにも "Microsoft" が表示されなくなるという利点があります。 authresp エンドポイントにポリシー名が含まれていない場合があることに注意してください。

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

2 つ目のオプションでは、テナント ドメイン名を 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 が参照されるように以下を更新します。

  • Authorization endpoint (承認エンドポイント)
  • Token endpoint (トークン エンドポイント)
  • トークン発行者

たとえば、Contoso のサインアップ/サインイン ポリシーの機関エンドポイントは次のようになります。

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

OWIN ベースの Web アプリケーションを b2clogin.com に移行する方法の詳細については、「OWIN ベースの Web API を b2clogin.com に移行する」を参照してください。

Azure AD B2C によって保護されている Azure API Management API を移行する方法については、「Azure AD B2C を使用して Azure API をセキュリティで保護する」の「b2clogin.com への移行」セクションを参照してください。

Microsoft Authentication Library (MSAL)

MSAL.NET の validateAuthority プロパティ

MSAL.NET v2 以前を使用している場合、b2clogin.com へのリダイレクトを可能にするには、クライアント インスタンス化の ValidateAuthority プロパティを false に設定します。 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 ベースの Web アプリケーションを b2clogin.com に移行する方法の詳細については、「OWIN ベースの Web API を b2clogin.com に移行する」を参照してください。

Azure AD B2C によって保護されている Azure API Management API を移行する方法については、「Azure AD B2C を使用して Azure API をセキュリティで保護する」の「b2clogin.com への移行」セクションを参照してください。