Verificatieopties configureren in een Android-app met behulp van Azure AD B2C
In dit artikel wordt beschreven hoe u de verificatie van Azure Active Directory B2C (Azure AD B2C) voor uw Android-toepassing kunt inschakelen, aanpassen en verbeteren.
Raadpleeg voordat u begint eerst de volgende artikelen:
- Verificatie configureren in een Android-voorbeeld-app met behulp van Azure AD B2C
- Verificatie inschakelen in uw eigen Android-app met behulp van Azure AD B2C
Een aangepast domein gebruiken
Met behulp van een aangepast domein kunt u de verificatie-URL volledig aanpassen aan uw merknaam. Voor gebruikers lijkt het alsof ze tijdens het verificatieproces op uw domein blijven, in plaats van dat ze worden omgeleid naar de Azure AD B2C-domeinnaam b2clogin.com.
Als u alle verwijzingen naar 'b2c' in de URL wilt verwijderen, kunt u ook de naam van uw B2C-tenant (contoso.onmicrosoft.com) in de URL van de verificatieaanvraag vervangen door de GUID van uw tenant-id. U kunt https://fabrikamb2c.b2clogin.com/contoso.onmicrosoft.com/
bijvoorbeeld wijzigen in https://account.contosobank.co.uk/<tenant ID GUID>/
.
Als u een aangepast domein en uw tenant-id in de verificatie-URL wilt gebruiken, volgt u de richtlijnen in Aangepaste domeinen inschakelen. Zoek naar uw Microsoft Authentication Library-configuratieobject (MASL) en werk vervolgens de autoriteiten bij met uw aangepaste domeinnaam en tenant-id.
De volgende Kotlin-code toont het MSAL-configuratieobject vóór de wijziging:
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.fromAuthority("https://contoso.b2clogin.com/fabrikamb2c.contoso.com/B2C_1_susi")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
De volgende Kotlin-code toont het MSAL-configuratieobject na de wijziging:
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)
De aanmeldingsnaam vooraf invullen
Tijdens een gebruikersbeleving voor aanmelden kan uw app zich op een specifieke gebruiker richten. Wanneer een app zich op een gebruiker richt, geeft de app in de autorisatieaanvraag mogelijk de queryparameter login_hint
op met de aanmeldingsnaam van de gebruiker. Azure AD B2C vult automatisch de aanmeldingsnaam in en de gebruiker hoeft alleen het wachtwoord op te geven.
Ga als volgt te werk om de aanmeldingsnaam vooraf in te vullen:
- Als u een aangepast beleid gebruikt, voegt u de vereiste invoerclaim toe, zoals beschreven in Directe aanmelding instellen.
- Zoek uw MSAL-configuratieobject en voeg vervolgens de
withLoginHint()
-methode toe met de aanmeldingshint.
val parameters = AcquireTokenParameters.Builder()
.startAuthorizationFromActivity(activity)
.withLoginHint("bob@contoso.com")
// More settings here
.build()
b2cApp!!.acquireToken(parameters)
Een id-provider vooraf selecteren
Als u socialemedia-accounts, zoals Facebook, LinkedIn en Google, in de aanmeldbeleving voor uw toepassing hebt geconfigureerd, kunt u de parameter domain_hint
opgeven. Deze queryparameter biedt een hint naar Azure AD B2C over de id-provider voor sociale media die moet worden gebruikt voor aanmelden. Als de toepassing bijvoorbeeld domain_hint=facebook.com
opgeeft, leidt de aanmeldingsstroom rechtstreeks naar de aanmeldingspagina van Facebook.
Ga als volgt te werk om gebruikers om te leiden naar een externe id-provider:
- Controleer de domeinnaam van de externe id-provider. Zie Aanmelden omleiden naar een sociale provider voor meer informatie.
- Maak of gebruik een bestaand lijstobject om extra queryparameters op te slaan.
- Voeg de parameter
domain_hint
met de bijbehorende domeinnaam toe aan de lijst (bijvoorbeeldfacebook.com
). - Geef de lijst met extra queryparameters door aan de methode
withAuthorizationQueryStringParameters
van het MSAL-configuratieobject.
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)
De taal van de gebruikersinterface opgeven
Met taalaanpassing in Azure AD B2C kunt u verschillende talen in uw gebruikersstroom opnemen om aan de behoeften van uw klanten te voldoen. Zie Taalaanpassing voor meer informatie.
Ga als volgt te werk om de voorkeurstaal in te stellen:
- Taalaanpassing configureren.
- Maak of gebruik een bestaand lijstobject om extra queryparameters op te slaan.
- Voeg de parameter
ui_locales
met de bijbehorende taalcode toe aan de lijst (bijvoorbeelden-us
). - Geef de lijst met extra queryparameters door aan de methode
withAuthorizationQueryStringParameters
van het MSAL-configuratieobject.
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)
Een aangepaste queryreeksparameter doorgeven
Met aangepast beleid kunt u een aangepaste querytekenreeksparameter doorgeven. Dit is bijvoorbeeld handig wanneer u de pagina-inhoud dynamisch wilt wijzigen.
Ga als volgt te werk om een aangepaste querytekenreeksparameter door te geven:
- Configureer het element ContentDefinitionParameters.
- Maak of gebruik een bestaand lijstobject om extra queryparameters op te slaan.
- Voeg de aangepaste queryreeksparameter, zoals
campaignId
, toe. Stel de parameterwaarde in (bijvoorbeeldgermany-promotion
). - Geef de lijst met extra queryparameters door aan de methode
withAuthorizationQueryStringParameters
van het MSAL-configuratieobject.
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)
Een hint voor een id-token doorgeven
Een Relying Party-toepassing kan een binnenkomend JSON Web Token (JWT) verzenden als onderdeel van de OAuth2-autorisatieaanvraag. Het binnenkomende token is een hint over de gebruiker of de autorisatieaanvraag. Azure AD B2C valideert het token en extraheert vervolgens de claim.
Ga als volgt te werk om een hint voor het id-token in de verificatieaanvraag op te nemen:
- Definieer in uw aangepaste beleid een technisch profiel voor de hint voor het id-token.
- Genereer een id-token in uw code of haal deze op en stel het token vervolgens in op een variabele (bijvoorbeeld
idToken
). - Maak of gebruik een bestaand lijstobject om extra queryparameters op te slaan.
- Voeg de parameter
id_token_hint
toe met de bijbehorende variabele waarin het id-token wordt opgeslagen. - Geef de lijst met extra queryparameters door aan de methode
withAuthorizationQueryStringParameters
van het MSAL-configuratieobject.
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)
Ingesloten webweergave
Webbrowsers zijn vereist voor interactieve verificatie. De MSAL-bibliotheek maakt standaard gebruik van de systeemwebweergave. Tijdens het aanmelden wordt in de MSAL-bibliotheek de webweergave van het Android-systeem weergegeven met de Azure AD B2C-gebruikersinterface.
Zie voor meer informatie het artikel SSO voor meerdere apps inschakelen op Android met behulp van MSAL.
Afhankelijk van uw vereisten kunt u de ingesloten webweergave gebruiken. Er zijn verschillen in visueel gedrag en het gedrag van de eenmalige aanmelding tussen de ingesloten webweergave en de systeemwebweergave in MSAL.
Belangrijk
We raden u aan de standaardinstelling van het platform te gebruiken, gewoonlijk de systeembrowser. De systeembrowser is beter in het onthouden van de gebruikers die zich eerder hebben aangemeld. Sommige id-providers, zoals Google, bieden geen ondersteuning voor een ingesloten weergave.
Als u dit gedrag wilt wijzigen, opent u het bestand app/src/main/res/raw/auth_config_b2c.json. Voeg vervolgens het kenmerk authorization_user_agent
toe met de waarde WEBVIEW
. In het volgende voorbeeld ziet u hoe u het webweergavetype in de ingesloten weergave kunt wijzigen:
{
"authorization_user_agent": "WEBVIEW"
}
Volgende stappen
- Zie MSAL voor Android-configuratieopties voor meer informatie over Android-configuratieopties.