Dela via


Konfigurera autentiseringsalternativ i en Android-app med hjälp av Azure AD B2C

I den här artikeln beskrivs hur du kan aktivera, anpassa och förbättra autentiseringsupplevelsen för Azure Active Directory B2C (Azure AD B2C) för ditt Android-program.

Innan du börjar bör du bekanta dig med följande artiklar:

Använda en anpassad domän

Genom att använda en anpassad domän kan du helt märka autentiserings-URL:en. Ur ett användarperspektiv finns användarna kvar på din domän under autentiseringsprocessen, i stället för att omdirigeras till Azure AD B2C b2clogin.com domännamn.

Om du vill ta bort alla referenser till "b2c" i URL:en kan du också ersätta ditt B2C-klientnamn, contoso.onmicrosoft.com, i URL:en för autentiseringsbegäran med ditt klientorganisations-ID GUID. Du kan till exempel ändra https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/ till https://account.contosobank.co.uk/<tenant ID GUID>/.

Om du vill använda en anpassad domän och ditt klientorganisations-ID i autentiserings-URL:en följer du anvisningarna i Aktivera anpassade domäner. Leta efter ditt Microsoft Authentication Library (MSAL-konfigurationsobjekt och uppdatera sedan myndigheterna med ditt anpassade domännamn och klientorganisations-ID.

Följande Kotlin-kod visar MSAL-konfigurationsobjektet före ändringen:

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

b2cApp!!.acquireToken(parameters)

Följande Kotlin-kod visar MSAL-konfigurationsobjektet efter ändringen:

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)

Fyll i inloggningsnamnet i förväg

Under en inloggningsanvändarresa kan din app riktas mot en viss användare. När en app riktar sig till en användare kan den i auktoriseringsbegäran login_hint ange frågeparametern med användarens inloggningsnamn. Azure AD B2C fyller automatiskt i inloggningsnamnet och användaren behöver bara ange lösenordet.

Gör följande för att fylla i inloggningsnamnet i förväg:

  1. Om du använder en anpassad princip lägger du till det inkommande anspråk som krävs enligt beskrivningen i Konfigurera direkt inloggning.
  2. Leta efter msal-konfigurationsobjektet och lägg sedan till withLoginHint() metoden med inloggningstipset.
val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withLoginHint("bob@contoso.com") 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Förmarkera en identitetsprovider

Om du har konfigurerat inloggningsresan för ditt program för att inkludera sociala konton, till exempel Facebook, LinkedIn eller Google, kan du ange parametern domain_hint . Den här frågeparametern ger ett tips om Azure AD B2C om den sociala identitetsprovider som ska användas för inloggning. Om programmet till exempel anger går inloggningsflödet domain_hint=facebook.comdirekt till Facebook-inloggningssidan.

Om du vill omdirigera användare till en extern identitetsprovider gör du följande:

  1. Kontrollera domännamnet för din externa identitetsprovider. Mer information finns i Omdirigera inloggning till en social provider.
  2. Skapa eller använd ett befintligt listobjekt för att lagra extra frågeparametrar.
  3. Lägg till parametern domain_hint med motsvarande domännamn i listan (till exempel facebook.com).
  4. Skicka listan med extra frågeparametrar till MSAL-konfigurationsobjektets withAuthorizationQueryStringParameters -metod.
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)

Ange användargränssnittsspråket

Språkanpassning i Azure AD B2C gör att ditt användarflöde kan hantera en mängd olika språk som passar dina kunders behov. Mer information finns i Språkanpassning.

Gör följande för att ange önskat språk:

  1. Konfigurera språkanpassning.
  2. Skapa eller använd ett befintligt listobjekt för att lagra extra frågeparametrar.
  3. Lägg till parametern ui_locales med motsvarande språkkod i listan (till exempel en-us).
  4. Skicka listan med extra frågeparametrar till MSAL-konfigurationsobjektets withAuthorizationQueryStringParameters -metod.
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)

Skicka en anpassad frågesträngsparameter

Med anpassade principer kan du skicka en anpassad frågesträngsparameter. Ett bra användningsexempel är när du vill ändra sidinnehållet dynamiskt.

Om du vill skicka en anpassad frågesträngsparameter gör du följande:

  1. Konfigurera elementet ContentDefinitionParameters .
  2. Skapa eller använd ett befintligt listobjekt för att lagra extra frågeparametrar.
  3. Lägg till den anpassade frågesträngsparametern, till exempel campaignId. Ange parametervärdet (till exempel germany-promotion).
  4. Skicka listan med extra frågeparametrar till MSAL-konfigurationsobjektets withAuthorizationQueryStringParameters -metod.
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)

Skicka ett ID-tokentips

Ett förlitande part-program kan skicka en inkommande JSON-webbtoken (JWT) som en del av OAuth2-auktoriseringsbegäran. Den inkommande token är ett tips om användaren eller auktoriseringsbegäran. Azure AD B2C verifierar token och extraherar sedan anspråket.

Om du vill inkludera ett tokentips för ID i autentiseringsbegäran gör du följande:

  1. Definiera en teknisk profil för ID-tokentips i din anpassade princip.
  2. Generera eller hämta en ID-token i koden och ange sedan token till en variabel (till exempel idToken).
  3. Skapa eller använd ett befintligt listobjekt för att lagra extra frågeparametrar.
  4. Lägg till parametern id_token_hint med motsvarande variabel som lagrar ID-token.
  5. Skicka listan med extra frågeparametrar till MSAL-konfigurationsobjektets withAuthorizationQueryStringParameters -metod.
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)

Inbäddad webbvyupplevelse

Webbläsare krävs för interaktiv autentisering. Som standard använder MSAL-biblioteket systemwebbvyn. Under inloggningen öppnar MSAL-biblioteket webbvyn för Android-systemet med användargränssnittet Azure AD B2C.

Mer information finns i artikeln Enable cross-app SSO on Android using MSAL (Aktivera enkel inloggning mellan appar på Android med MSAL ).

Beroende på dina behov kan du använda den inbäddade webbvyn. Det finns skillnader i beteende för visuella objekt och enkel inloggning mellan den inbäddade webbvyn och systemets webbvy i MSAL.

Skärmbild som visar skillnaden mellan systemets webbvyupplevelse och den inbäddade webbvyupplevelsen.

Viktigt

Vi rekommenderar att du använder plattformens standardvärde, som vanligtvis är systemwebbläsaren. Systemwebbläsaren är bättre på att komma ihåg de användare som har loggat in tidigare. Vissa identitetsprovidrar, till exempel Google, stöder inte en inbäddad vyupplevelse.

Om du vill ändra det här beteendet öppnar du filen app/src/main/res/raw/auth_config_b2c.json . Lägg sedan till attributet authorization_user_agent med värdet WEBVIEW . I följande exempel visas hur du ändrar webbvytypen till inbäddad vy:

{
  "authorization_user_agent": "WEBVIEW" 
}

Nästa steg