Sdílet prostřednictvím


Konfigurace možností ověřování v aplikaci pro Android pomocí Azure AD B2C

Důležité

Od 1. května 2025 už nebude Azure AD B2C k dispozici k nákupu pro nové zákazníky. Další informace najdete v našich nejčastějších dotazech.

Tento článek popisuje, jak povolit, přizpůsobit a vylepšit prostředí ověřování Azure Active Directory B2C (Azure AD B2C) pro vaši aplikaci pro Android.

Než začnete, seznamte se s následujícími články:

Použití vlastní domény

Pomocí vlastní domény můžete plně označit adresu URL ověřování. Z pohledu uživatele zůstanou uživatelé ve vaší doméně během procesu ověřování místo přesměrování na název domény Azure AD B2C b2clogin.com.

Pokud chcete odebrat všechny odkazy na "b2c" v adrese URL, můžete také nahradit název tenanta B2C, contoso.onmicrosoft.com, v adrese URL žádosti o ověření identifikátorem GUID vašeho tenanta. Můžete například změnit https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/ na https://account.contosobank.co.uk/<tenant ID GUID>/.

Pokud chcete v adrese URL ověřování použít vlastní doménu a ID tenanta, postupujte podle pokynů v tématu Povolení vlastních domén. Vyhledejte knihovnu Microsoft Authentication Library (objekt konfigurace MSAL) a pak aktualizujte autority vlastním názvem domény a ID tenanta.

Následující kód Kotlin před změnou zobrazuje objekt konfigurace MSAL:

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

b2cApp!!.acquireToken(parameters)

Následující kód Kotlin zobrazuje objekt konfigurace MSAL po změně:

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)

Předem vyplníte přihlašovací jméno.

Během cesty uživatele přihlašování může vaše aplikace cílit na konkrétního uživatele. Když aplikace cílí na uživatele, může v žádosti o login_hint autorizaci zadat parametr dotazu s přihlašovacím jménem uživatele. Azure AD B2C automaticky vyplní přihlašovací jméno a uživatel musí zadat jenom heslo.

Chcete-li předvyplnit přihlašovací jméno, postupujte takto:

  1. Pokud používáte vlastní zásadu, přidejte požadovanou vstupní deklaraci, jak je popsáno v Nastavte přímé přihlášení.
  2. Vyhledejte objekt konfigurace MSAL a pak přidejte metodu withLoginHint() s nápovědou pro přihlášení.
val parameters = AcquireTokenParameters.Builder()
    .startAuthorizationFromActivity(activity)
    .withLoginHint("bob@contoso.com") 
    // More settings here
    .build()

b2cApp!!.acquireToken(parameters)

Předem vyberte zprostředkovatele identity

Pokud jste nakonfigurovali cestu přihlášení pro aplikaci tak, aby zahrnovala sociální účty, jako je Facebook, LinkedIn nebo Google, můžete zadat domain_hint parametr. Tento parametr dotazu poskytuje nápovědu pro Azure AD B2C o zprostředkovateli sociálních identit, který by se měl použít pro přihlášení. Pokud například aplikace určí domain_hint=facebook.com, tok přihlášení přejde přímo na přihlašovací stránku Facebooku.

Pokud chcete uživatele přesměrovat na externího zprostředkovatele identity, postupujte takto:

  1. Zkontrolujte název domény vašeho externího zprostředkovatele identity. Další informace najdete v tématu Přesměrování přihlášení k poskytovateli sociálních sítí.
  2. Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
  3. domain_hint Přidejte parametr s odpovídajícím názvem domény do seznamu (například facebook.com).
  4. Předejte extra seznam parametrů dotazu do metody objektu withAuthorizationQueryStringParameters konfigurace MSAL.
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)

Určení jazyka uživatelského rozhraní

Přizpůsobení jazyka v Azure AD B2C umožňuje toku uživatelů přizpůsobit různé jazyky podle potřeb vašich zákazníků. Další informace naleznete v tématu Přizpůsobení jazyka.

Pokud chcete nastavit upřednostňovaný jazyk, postupujte takto:

  1. Nakonfigurujte přizpůsobení jazyka.
  2. Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
  3. ui_locales Přidejte parametr s odpovídajícím kódem jazyka do seznamu (například en-us).
  4. Předejte extra seznam parametrů dotazu do metody objektu withAuthorizationQueryStringParameters konfigurace MSAL.
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)

Předání vlastního parametru řetězce dotazu

Pomocí vlastních zásad můžete předat vlastní parametr řetězce dotazu. Dobrým příkladem použití je, když chcete dynamicky změnit obsah stránky.

Pokud chcete předat vlastní parametr řetězce dotazu, postupujte takto:

  1. Nakonfigurujte element ContentDefinitionParameters .
  2. Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
  3. Přidejte vlastní parametr řetězce dotazu, například campaignId. Nastavte hodnotu parametru (například germany-promotion).
  4. Předejte extra seznam parametrů dotazu do metody objektu withAuthorizationQueryStringParameters konfigurace MSAL.
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)

Nápověda k předání tokenu ID

Aplikace předávající strany může jako součást žádosti o autorizaci OAuth2 odeslat příchozí webový token JSON (JWT). Příchozí token je indikátorem o uživateli nebo žádosti o autorizaci. Azure AD B2C ověří token a pak extrahuje deklaraci identity.

Pokud chcete do žádosti o ověření zahrnout nápovědu tokenu ID, postupujte takto:

  1. Ve vlastní zásadě definujte technický profil nápovědy ID tokenu.
  2. V kódu vygenerujte nebo získejte token ID a pak nastavte token na proměnnou (například idToken).
  3. Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
  4. id_token_hint Přidejte parametr s odpovídající proměnnou, která ukládá token ID.
  5. Předejte extra seznam parametrů dotazu do metody objektu withAuthorizationQueryStringParameters konfigurace MSAL.
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)

Vložené prostředí webového zobrazení

K interaktivnímu ověřování se vyžadují webové prohlížeče. Ve výchozím nastavení knihovna MSAL používá systémové webové zobrazení. Během přihlašování se knihovna MSAL zobrazí v uživatelském rozhraní Azure AD B2C v systémovém webovém zobrazení Androidu.

Další informace najdete v článku Povolení jednotného přihlašování mezi aplikacemi v Androidu pomocí knihovny MSAL .

V závislosti na vašich požadavcích můžete použít vložené webové zobrazení. Mezi vloženým webovým zobrazením a systémovým webovým zobrazením v MSAL jsou rozdíly ve vizuálním a jednotném přihlašování.

Snímek obrazovky znázorňující rozdíl mezi prostředím systémového webového zobrazení a vloženým prostředím webového zobrazení

Důležité

Doporučujeme použít výchozí platformu, což je obvykle systémový prohlížeč. Systémový prohlížeč je lepší pamatovat si uživatele, kteří se přihlásili dříve. Někteří zprostředkovatelé identity, jako je Google, nepodporují vložené zobrazení.

Pokud chcete toto chování změnit, otevřete soubor app/src/main/res/raw/auth_config_b2c.json . Pak přidejte authorization_user_agent atribut s WEBVIEW hodnotou. Následující příklad ukazuje, jak změnit typ webového zobrazení na vložené zobrazení:

{
  "authorization_user_agent": "WEBVIEW" 
}

Další kroky