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:
- Konfigurace ověřování v ukázkové aplikaci pro Android pomocí Azure AD B2C
- Povolení ověřování ve vlastní aplikaci pro Android pomocí Azure AD B2C
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:
- 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í.
- 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:
- 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í.
- Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
- Přidejte do
domain_hint
seznamu parametr s odpovídajícím názvem domény (napříkladfacebook.com
). - 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:
- Nakonfigurujte přizpůsobení jazyka.
- Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
- Přidejte do
ui_locales
seznamu parametr s odpovídajícím kódem jazyka (napříkladen-us
). - 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:
- Nakonfigurujte element ContentDefinitionParameters .
- Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
- Přidejte vlastní parametr řetězce dotazu, například
campaignId
. Nastavte hodnotu parametru (napříkladgermany-promotion
). - 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:
- Ve vlastních zásadách definujte technický profil nápovědy tokenu ID.
- V kódu vygenerujte nebo získejte token ID a pak ho nastavte na proměnnou (například
idToken
). - Vytvořte nebo použijte existující objekt seznamu k uložení dalších parametrů dotazu.
-
id_token_hint
Přidejte parametr s odpovídající proměnnou, která ukládá token ID. - 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í.
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
- Další informace o konfiguraci Androidu najdete v tématu Možnosti konfigurace MSAL pro Android.