Sdílet prostřednictvím


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

Tento článek popisuje, jak můžete 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 adresu URL ověřování plně o značit. Z pohledu uživatele zůstanou uživatelé během procesu ověřování ve vaší doméně, místo aby byli přesměrováni na Azure AD B2C b2clogin.com název domény.

Pokud chcete v adrese URL odebrat všechny odkazy na b2c, můžete v adrese URL žádosti o ověření nahradit název tenanta B2C contoso.onmicrosoft.com 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 ověřovací adrese URL použít vlastní doménu a ID tenanta, postupujte podle pokynů v tématu Povolení vlastních domén. Vyhledejte svou knihovnu Microsoft Authentication Library (konfigurační objekt MSAL) a aktualizujte autority s použitím vlastního názvu domény a ID tenanta.

Následující kód Kotlin ukazuje konfigurační objekt MSAL před změnou:

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 ukazuje konfigurační objekt 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í přihlašovací jméno.

Během přihlašovací cesty uživatele 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.

Pokud chcete přihlašovací jméno předem naplnit, postupujte takto:

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

b2cApp!!.acquireToken(parameters)

Předběžný výběr zprostředkovatele identity

Pokud jste nakonfigurovali přihlašovací cestu pro vaši aplikaci tak, aby zahrnovala účty sociálních sítí, jako je Facebook, LinkedIn nebo Google, můžete zadat domain_hint parametr . Tento parametr dotazu poskytuje nápovědu k Azure AD B2C o zprostředkovateli sociální identity, který by se měl použít pro přihlášení. Pokud například aplikace zadá 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 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. Přidejte do domain_hint seznamu parametr s odpovídajícím názvem domény (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ů pojmout různé jazyky tak, aby vyhovovaly potřebám vašich zákazníků. Další informace najdete v tématu Přizpůsobení jazyka.

Upřednostňovaný jazyk nastavíte 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. Přidejte do ui_locales seznamu parametr s odpovídajícím kódem jazyka (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

S vlastními zásadami můžete předat vlastní parametr řetězce dotazu. Dobrým příkladem použití je, když chcete dynamicky mě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 v rámci žádosti o autorizaci OAuth2 odeslat příchozí webový token JSON (JWT). Příchozí token je nápověda týkající se uživatele nebo žádosti o autorizaci. Azure AD B2C token ověří a pak deklaraci identity extrahuje.

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

  1. Ve vlastních zásadách definujte technický profil nápovědy tokenu ID.
  2. V kódu vygenerujte nebo získejte token ID a pak ho nastavte 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. Knihovna MSAL ve výchozím nastavení používá systémové webové zobrazení. Během přihlašování se v knihovně MSAL zobrazí webové zobrazení systému Android s uživatelským rozhraním Azure AD B2C.

Další informace najdete v článku Povolení jednotného přihlašování mezi aplikacemi na Androidu pomocí 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 knihovně MSAL existují rozdíly ve vizuálním a jednotném přihlašování.

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

Důležité

Doporučujeme použít výchozí nastavení platformy, což je obvykle systémový prohlížeč. Systémový prohlížeč si lépe pamatuje uživatele, kteří se přihlásili dříve. Někteří zprostředkovatelé identit, například Google, nepodporují prostředí vloženého 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