Freigeben über


Aktivieren von Authentifizierungsoptionen in einer Python-Web-App mit Azure AD B2C

In diesem Artikel werden die Möglichkeiten beschrieben, wie Sie die Authentifizierungsfunktionalität von Azure Active Directory B2C (Azure AD B2C) für Ihre Python-Webanwendung aktivieren, anpassen und verbessern können.

Bevor Sie beginnen, ist es wichtig, sich mit dem Konfigurieren der Authentifizierung in einer Python-Beispiel-Web-App mithilfe von Azure AD B2C vertraut machen.

Verwenden einer benutzerdefinierten Domäne

Durch Verwenden einer benutzerdefinierten Domäne können Sie die Authentifizierungs-URL vollständig mit Branding versehen. Aus seiner Sicht bleibt der Benutzer während des Authentifizierungsprozesses in Ihrer Domäne und wird nicht zum Azure AD B2C-Domänennamen b2clogin.com umgeleitet.

Um alle Verweise auf „b2c“ in der URL zu entfernen, können Sie auch den Namen Ihres B2C-Mandanten, contoso.onmicrosoft.com, in der URL der Authentifizierungsanforderung durch die GUID Ihrer Mandanten-ID ersetzen. Sie können z. B. https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/ in https://account.contosobank.co.uk/<tenant ID GUID>/ ändern.

So verwenden Sie eine benutzerdefinierte Domäne und Ihre Mandanten-ID in der Authentifizierungs-URL:

  1. Befolgen Sie die Anleitung unter Das Aktivieren benutzerdefinierter Domänen.
  2. Aktualisieren Sie das Klassenmitglied authority_template mit Ihrer benutzerdefinierten Domäne in der Datei app_config.py den.

Die folgende Python-Code zeigt die App-Einstellungen vor der Änderung:

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

Die folgende Python-Code zeigt die App-Einstellungen nach der Änderung:

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

Auffüllen des Anmeldenamens

Während einer User Journey zur Anmeldung zielt Ihre App ggf. auf einen bestimmten Benutzer ab. Wenn eine App auf einen Benutzer abzielt, kann sie in der Autorisierungsanforderung den Abfrageparameter login_hint mit dem Anmeldenamen des Benutzers angeben. Azure AD B2C füllt den Anmeldenamen automatisch auf. Der Benutzer muss nur das Kennwort angeben.

Gehen Sie wie folgt vor, um den Anmeldenamen vorab aufzufüllen:

  1. Wenn Sie eine benutzerdefinierte Richtlinie verwenden, fügen Sie den erforderlichen Eingabeanspruch hinzu, wie unter dem Verfahren Einrichten der direkten Anmeldung beschrieben.
  2. Suchen Sie nach der initiate_auth_code_flow-Methode und fügen Sie dann den login_hintParameter mit dem Domänennamen des Identitätsanbieters hinzu (z. B. facebook.com).
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")

Vorabauswahl eines Identitätsanbieters

Wenn Sie die User Journey für die Anmeldung bei Ihrer Anwendung so konfiguriert haben, dass Konten für soziale Netzwerke inbegriffen sind, wie z.B. Facebook, LinkedIn oder Google, können Sie den Parameter domain_hint angeben. Dieser Abfrageparameter enthält einen Hinweis für Azure AD B2C zu dem sozialen Netzwerk als Identitätsanbieter, das für die Anmeldung verwendet werden sollte. Wenn in der Anwendung beispielsweise domain_hint=facebook.com angegeben ist, erfolgt der Anmeldefluss direkt auf der Anmeldeseite von Facebook.

Gehen Sie wie folgt vor, um Benutzer zu einem externen Identitätsanbieter umzuleiten:

  1. Überprüfen Sie den Domänennamen Ihres externen Identitätsanbieters. Weitere Informationen finden Sie unter Umleiten einer Anmeldung zu einem Anbieter sozialer Netzwerke.

  2. Suchen Sie die initiate_auth_code_flow-Methode und fügen Sie dann den Parameter domain_hint mit dem Anmeldehinweis hinzu.

    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")
    

Nächste Schritte