Zelfstudie: Ondersteuning voor webterugval in Android-app
Van toepassing op: Werknemer-huurders
Externe huurders (meer informatie)
In deze zelfstudie ziet u hoe isBrowserRequired()
fout optreedt en hoe u deze kunt oplossen. De hulpprogrammamethode isBrowserRequired()
controleert de noodzaak van een terugvalmechanisme voor verschillende scenario's waarbij systeemeigen verificatie niet voldoende is om de verificatiestroom op functionele en veilige wijze te voltooien.
In deze zelfstudie leert u het volgende:
- Controleer
isBrowserRequired()
-
isBrowserRequired()
behandelen
Voorwaarden
- Voltooi de stappen in Gebruikers aanmelden in een voorbeeld van een systeemeigen mobiele Android-toepassing. In dit artikel wordt beschreven hoe u een voorbeeld-Android uitvoert die u configureert met behulp van uw tenantinstellingen.
- Voltooi de stappen in Zelfstudie: Toevoegen van aan- en afmelden met een eenmalige toegangscode per e-mail.
Terugval op internet
Gebruik web fallbackmechanisme voor scenario's waarin systeemeigen verificatie niet voldoende is om de gebruikersverificatiestroom te doorlopen.
Wanneer u de Android SDK initialiseert, geeft u de vraagtypen op die door uw mobiele toepassing worden ondersteund, zoals oob- en wachtwoord.
Als uw client-app geen ondersteuning biedt voor een vraagtype dat Microsoft Entra vereist, geeft het antwoord van Microsoft Entra aan dat de client-app moet doorgaan met de verificatiestroom in de browser. U initialiseert bijvoorbeeld de SDK met oob uitdagingstype, maar in het Microsoft Entra-beheercentrum configureert u de app met een e-mail met wachtwoordverificatiemethode.
In dit geval geeft de hulpprogrammamethode isBrowserRequired()
waar terug.
Voorbeeldstroom
Laten we eens kijken naar een voorbeeldstroom die isBrowserRequired()
retourneert en hoe u deze kunt afhandelen:
Voeg in het JSON-configuratiebestand, dat u tijdens de initialisatie doorgeeft aan de SDK, alleen het oob--vraagtype toe, zoals het volgende codefragment wordt weergegeven:
PublicClientApplication.createNativeAuthPublicClientApplication( requireContext(), R.raw.native_auth_config // JSON configuration file )
De
native_auth_config.json
-configuratie heeft het volgende codefragment:{ "client_id" : "{Enter_the_Application_Id_Here}", "authorities" : [ { "type": "CIAM", "authority_url": "https://{Enter_the_Tenant_Subdomain_Here}.ciamlogin.com/{Enter_the_Tenant_Subdomain_Here}.onmicrosoft.com/" } ], "challenge_types" : ["oob"], "logging": { "pii_enabled": false, "log_level": "INFO", "logcat_enabled": true } }
In het Microsoft Entra-beheercentrum configureert u uw gebruikersstroom voor het gebruik van e-mail met wachtwoord als verificatiemethode.
Start een registratiestroom met behulp van de
signUp(parameters)
methode van de SDK. U krijgt eenSignUpError
die deisBrowserRequired()
keuring doorstaat zoals Microsoft Entra verwacht met het -wachtwoord en het -oob-uitdagingstype, maar u hebt uw SDK alleen geconfigureerd met oob.Als u de
isBrowserRequired()
wilt controleren en afhandelen, gebruikt u het volgende codefragment:val parameters = NativeAuthSignUpParameters(username = email) val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpError && actionResult.isBrowserRequired()) { // Handle "browser required" error }
De code geeft aan dat de verificatiestroom niet kan worden voltooid via systeemeigen verificatie en dat een browser moet worden gebruikt.
Afhandelen van isBrowserRequired() fout
Als u deze fout wilt afhandelen, moet de client-app een browser starten en de verificatiestroom opnieuw starten. U kunt dit doen met behulp van msal (Microsoft Authentication Library) acquireToken()
methode.
Gebruik hiervoor de volgende stappen:
Als u een omleidings-URI wilt toevoegen aan de app die u eerder hebt geregistreerd, gebruikt u de stappen in Een omleidings-URL voor het platform toevoegen.
Als u het configuratiebestand van uw client-app wilt bijwerken, gebruikt u de stappen in [De redir configureren
ect URI in SDK-configuratie](../external-id/customers/sample-mobile-app-android-kotlin-sign-in.md#configure-the-sample-android-mobile-application).
Gebruik het volgende codefragment om een token te verkrijgen met behulp van de methode
acquireToken()
:val parameters = NativeAuthSignUpParameters(username = email) val actionResult: SignUpResult = authClient.signUp(parameters) if (actionResult is SignUpError && actionResult.isBrowserRequired()) { authClient.acquireToken( AcquireTokenParameters( AcquireTokenParameters.Builder() .startAuthorizationFromActivity(requireActivity()) .withScopes(getScopes()) .withCallback(getAuthInteractiveCallback()) ) // Result will contain account and tokens retrieved through the browser. ) }
Beveiligingstokens, namelijk ID-token, toegangstoken en vernieuwingstoken, die u via de natuurlijke verificatiestroom ontvangt, zijn dezelfde tokens als die u krijgt via het door de browser gedelegeerde proces.
Verwante inhoud
- Leer hoe je de iOS-voorbeeld-app uitvoert
- Ontdek native authenticatie-API referentie met eenmalige verificatiecode per e-mail.
- Meer informatie over uitdagingstypen.