次の方法で共有


Azure AD B2C を使用して Python Web アプリで認証オプションを有効にする

重要

2025 年 5 月 1 日より、Azure AD B2C は新規のお客様向けに購入できなくなります。 詳細については、FAQ を参照してください

この記事では、Python Web アプリケーションの Azure Active Directory B2C (Azure AD B2C) 認証エクスペリエンスを有効、カスタマイズ、および強化する方法について説明します。

開始する前に、 Azure AD B2C を使用してサンプル Python Web アプリで認証を構成する方法を理解することが重要です。

カスタム ドメインの使用

カスタム ドメインを使用すると、認証 URL を完全にブランド化できます。 ユーザーの観点からは、ユーザーは Azure AD B2C b2clogin.com ドメイン名にリダイレクトされるのではなく、認証プロセス中もドメインに残ります。

URL 内の "b2c" へのすべての参照を削除するには、認証要求 URL の B2C テナント名 (contoso.onmicrosoft.com) をテナント ID GUID に置き換えることもできます。 たとえば、 https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/https://account.contosobank.co.uk/<tenant ID GUID>/ に変更できます。

認証 URL でカスタム ドメインとテナント ID を使用するには:

  1. 「カスタム ドメインを有効にする」のガイダンスに従います。
  2. app_config.py ファイルで、authority_template クラス メンバーをカスタム ドメインで更新します。

次の Python コードは、変更前のアプリ設定を示しています。

authority_template = "https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/{user_flow}"

次の Python コードは、変更後のアプリ設定を示しています。

authority_template = "https://custom.domain.com/00000000-0000-0000-0000-000000000000/{user_flow}" 

サインイン名を事前に入力する

サインイン ユーザー体験中に、アプリが特定のユーザーをターゲットにしている可能性があります。 アプリがユーザーを対象とする場合は、承認要求で、ユーザーのサインイン名を使用して login_hint クエリ パラメーターを指定できます。 Azure AD B2C によってサインイン名が自動的に設定され、ユーザーはパスワードのみを指定する必要があります。

サインイン名を事前に入力するには、次の操作を行います。

  1. カスタム ポリシーを使用している場合は、「 直接サインインの設定」の説明に従って、必要な入力要求を追加します。
  2. initiate_auth_code_flow メソッドを見つけて、ID プロバイダーのドメイン名 (facebook.com など) を使用して login_hint パラメーターを追加します。
def _build_auth_code_flow(authority=None, scopes=None):
    return _build_msal_app(authority=authority).initiate_auth_code_flow(
        scopes or [],
        redirect_uri=url_for("authorized", _external=True),
        login_hint="bob@contoso.com")

ID プロバイダーを事前選択する

Facebook、LinkedIn、Google などのソーシャル アカウントを含むようにアプリケーションのサインイン体験を構成した場合は、 domain_hint パラメーターを指定できます。 このクエリ パラメーターは、サインインに使用するソーシャル ID プロバイダーに関するヒントを Azure AD B2C に提供します。 たとえば、アプリケーションが domain_hint=facebook.comを指定した場合、サインイン フローは Facebook サインイン ページに直接移動します。

ユーザーを外部 ID プロバイダーにリダイレクトするには、次の操作を行います。

  1. 外部 ID プロバイダーのドメイン名を確認します。 詳細については、「サインインをソーシャル プロバイダーにリダイレクトする」を参照してください。

  2. initiate_auth_code_flow メソッドを見つけて、ログイン ヒントを使用して domain_hint パラメーターを追加します。

    def _build_auth_code_flow(authority=None, scopes=None):
        return _build_msal_app(authority=authority).initiate_auth_code_flow(
            scopes or [],
            redirect_uri=url_for("authorized", _external=True),
            domain_hint="facebook.com")
    

次のステップ