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 への移行」セクションを参照してください。