Teilen über


Konfigurieren von Authentifizierungsoptionen in einer Android-App mithilfe von Azure AD B2C

Von Bedeutung

Ab dem 1. Mai 2025 steht Azure AD B2C nicht mehr für neue Kunden zur Verfügung. Weitere Informationen finden Sie in unseren HÄUFIG gestellten Fragen.

In diesem Artikel wird beschrieben, wie Sie die Azure Active Directory B2C(Azure AD B2C)-Authentifizierung für Ihre Android-Anwendung aktivieren, anpassen und verbessern können.

Bevor Sie beginnen, machen Sie sich mit den folgenden Artikeln vertraut:

Verwenden einer benutzerdefinierten Domäne

Mithilfe einer benutzerdefinierten Domäne können Sie die Authentifizierungs-URL vollständig kennzeichnen. Aus Benutzerperspektive verbleiben Benutzer während des Authentifizierungsprozesses auf Ihrer Domäne, anstatt an den Azure AD B2C b2clogin.com Domänennamen umgeleitet zu werden.

Um alle Verweise auf "b2c" in der URL zu entfernen, können Sie auch Ihren B2C-Mandantennamen, contoso.onmicrosoft.com, in der Authentifizierungsanforderungs-URL durch Ihre Mandanten-ID-GUID ersetzen. Sie können zum Beispiel https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/ zu https://account.contosobank.co.uk/<tenant ID GUID>/ ändern.

Wenn Sie eine benutzerdefinierte Domäne und Ihre Mandanten-ID in der Authentifizierungs-URL verwenden möchten, befolgen Sie die Anweisungen in "Benutzerdefinierte Domänen aktivieren". Suchen Sie nach Ihrer Microsoft-Authentifizierungsbibliothek (MSAL-Konfigurationsobjekt), und aktualisieren Sie dann die Behörden mit Ihrem benutzerdefinierten Domänennamen und Ihrer Mandanten-ID.

Der folgende Kotlin-Code zeigt das MSAL-Konfigurationsobjekt vor der Änderung:

val parameters = AcquireTokenParameters.Builder()
        .startAuthorizationFromActivity(activity)
        .fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
        // More settings here
        .build()

b2cApp!!.acquireToken(parameters)

Der folgende Kotlin-Code zeigt das MSAL-Konfigurationsobjekt nach der Änderung:

val parameters = AcquireTokenParameters.Builder()
        .startAuthorizationFromActivity(activity)
        .fromAuthority("https://custom.domain.com/00000000-0000-0000-0000-000000000000/B2C_1_susi")
        // More settings here
        .build()

b2cApp!!.acquireToken(parameters)

Den Anmeldenamen im Voraus ausfüllen

Während einer Anmeldebenutzerreise richtet sich Ihre App möglicherweise an einen bestimmten Benutzer. Wenn eine App auf einen Benutzer ausgerichtet ist, kann sie in der Autorisierungsanforderung den login_hint Abfrageparameter mit dem Anmeldenamen des Benutzers angeben. Azure AD B2C füllt automatisch den Anmeldenamen auf, und 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 "Einrichten der direkten Anmeldung" beschrieben.
  2. Suchen Sie nach Ihrem MSAL-Konfigurationsobjekt, und fügen Sie dann die withLoginHint() Methode mit dem Anmeldehinweis hinzu.
val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withLoginHint("bob@contoso.com") 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Vorauswahl eines Identitätsanbieters

Wenn Sie die Anmeldereise für Ihre Anwendung so konfiguriert haben, dass sie soziale Konten wie Facebook, LinkedIn oder Google enthält, können Sie den domain_hint Parameter angeben. Dieser Abfrageparameter gibt Azure AD B2C einen Hinweis auf den sozialen Identitätsanbieter, der für die Anmeldung verwendet werden soll. Wenn die Anwendung beispielsweise angibt domain_hint=facebook.com, wechselt der Anmeldefluss direkt zur Facebook-Anmeldeseite.

Gehen Sie wie folgt vor, um Benutzer an einen externen Identitätsanbieter umzuleiten:

  1. Überprüfen Sie den Domänennamen Ihres externen Identitätsanbieters. Weitere Informationen finden Sie unter Umleitung der Anmeldung an einen Anbieter für soziale Netzwerke.
  2. Erstellen oder Verwenden eines vorhandenen Listenobjekts zum Speichern zusätzlicher Abfrageparameter.
  3. Fügen Sie den domain_hint Parameter mit dem entsprechenden Domänennamen zur Liste hinzu (z. B facebook.com. ).
  4. Übergeben Sie die Liste der zusätzlichen Abfrageparameter an die Methode des MSAL-Konfigurationsobjekts withAuthorizationQueryStringParameters .
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("domain_hint", "facebook.com"))

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Angeben der Benutzeroberflächensprache

Die Sprachanpassung in Azure AD B2C ermöglicht Es Ihrem Benutzerfluss, eine Vielzahl von Sprachen an die Anforderungen Ihrer Kunden anzupassen. Weitere Informationen finden Sie unter Sprachanpassung.

Gehen Sie wie folgt vor, um die bevorzugte Sprache festzulegen:

  1. Konfigurieren sie die Sprachanpassung.
  2. Erstellen oder Verwenden eines vorhandenen Listenobjekts zum Speichern zusätzlicher Abfrageparameter.
  3. Fügen Sie den ui_locales Parameter mit dem entsprechenden Sprachcode zur Liste hinzu (z. B en-us. ).
  4. Übergeben Sie die Liste der zusätzlichen Abfrageparameter an die Methode des MSAL-Konfigurationsobjekts withAuthorizationQueryStringParameters .
val extraQueryParameters: MutableList<Map.Entry<String, String>> = ArrayList()

val mapEntry   = object : Map.Entry<String, String> {
      override val key: String = "ui_locales"
      override val value: String = "en-us"
    }   
    
extraQueryParameters.add(mapEntry )

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Übergeben eines benutzerdefinierten Abfragezeichenfolgenparameters

Mit benutzerdefinierten Richtlinien können Sie einen benutzerdefinierten Abfragezeichenfolgenparameter übergeben. Ein gutes Anwendungsfallbeispiel ist, wenn Sie den Seiteninhalt dynamisch ändern möchten.

Gehen Sie wie folgt vor, um einen benutzerdefinierten Abfragezeichenfolgenparameter zu übergeben:

  1. Konfigurieren Sie das ContentDefinitionParameters-Element .
  2. Erstellen oder Verwenden eines vorhandenen Listenobjekts zum Speichern zusätzlicher Abfrageparameter.
  3. Fügen Sie den benutzerdefinierten Abfragezeichenfolgenparameter hinzu, wie zum Beispiel campaignId. Legen Sie den Parameterwert fest (z. B germany-promotion. ).
  4. Übergeben Sie die Liste der zusätzlichen Abfrageparameter an die Methode des MSAL-Konfigurationsobjekts withAuthorizationQueryStringParameters .
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("campaignId", "germany-promotion"))

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Übergeben eines ID-Tokenhinweises

Eine Anwendung einer vertrauenden Seite kann ein eingehendes JSON-Webtoken (JWT) als Teil der OAuth2-Autorisierungsanforderung senden. Das eingehende Token ist ein Hinweis auf den Benutzer oder die Autorisierungsanforderung. Azure AD B2C überprüft das Token und extrahiert dann den Anspruch.

Gehen Sie wie folgt vor, um einen ID-Tokenhinweis in die Authentifizierungsanforderung einzuschließen:

  1. Definieren Sie in Ihrer benutzerdefinierten Richtlinie ein ID-Tokenhinweis technisches Profil.
  2. Generieren oder erwerben Sie in Ihrem Code ein ID-Token, und legen Sie das Token dann auf eine Variable fest (z. B idToken. ).
  3. Erstellen oder Verwenden eines vorhandenen Listenobjekts zum Speichern zusätzlicher Abfrageparameter.
  4. Fügen Sie den id_token_hint Parameter mit der entsprechenden Variable hinzu, die das ID-Token speichert.
  5. Übergeben Sie die Liste der zusätzlichen Abfrageparameter an die Methode des MSAL-Konfigurationsobjekts withAuthorizationQueryStringParameters .
val extraQueryParameters: MutableList<Pair<String, String>> = ArrayList()
extraQueryParameters.add(Pair("id_token_hint", idToken))

val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withAuthorizationQueryStringParameters(extraQueryParameters) 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Eingebettete Webansicht

Webbrowser sind für die interaktive Authentifizierung erforderlich. Standardmäßig verwendet die MSAL-Bibliothek die Systemwebansicht. Während der Anmeldung öffnet die MSAL-Bibliothek die Android-Systemwebansicht mit der Benutzeroberfläche von Azure AD B2C.

Weitere Informationen finden Sie im Artikel "Aktivieren von appübergreifendem SSO unter Android mithilfe von MSAL ".

Je nach Ihren Anforderungen können Sie die eingebettete Webansicht verwenden. Es gibt Unterschiede beim visuellen und einmaligen Anmelden zwischen der eingebetteten Webansicht und der Systemwebansicht in MSAL.

Screenshot, der den Unterschied zwischen der Systemwebansicht und der eingebetteten Webansicht zeigt.

Von Bedeutung

Es wird empfohlen, den Plattformstandard zu verwenden, der normalerweise der Systembrowser ist. Der Systembrowser ist besser, sich an die Benutzer zu erinnern, die sich zuvor angemeldet haben. Einige Identitätsanbieter, z. B. Google, unterstützen keine eingebettete Ansichtsoberfläche.

Um dieses Verhalten zu ändern, öffnen Sie die Datei "app/src/main/res/raw/auth_config_b2c.json ". Fügen Sie dann das authorization_user_agent Attribut mit dem WEBVIEW Wert hinzu. Im folgenden Beispiel wird veranschaulicht, wie Sie den Webansichtstyp in eingebettete Ansicht ändern:

{
  "authorization_user_agent": "WEBVIEW" 
}

Nächste Schritte