Eenmalige aanmelding voor meerdere apps inschakelen op Android met MSAL

Met eenmalige aanmelding (SSO) kunnen gebruikers hun referenties slechts eenmaal invoeren en deze referenties automatisch laten werken in alle toepassingen.

Het Microsoft identity platform en de Microsoft Authentication Library (MSAL) helpen u eenmalige aanmelding in te schakelen in uw eigen suite met apps. Met de brokercapaciteit en Authenticator-toepassingen kunt u de eenmalige aanmelding uitbreiden voor het hele apparaat.

In deze procedure leert u hoe u de SDK's die door uw in uw toepassing worden gebruikt, kunt configureren om uw klanten eenmalige aanmelding te bieden.

Vereisten

In deze instructies wordt ervan uitgegaan dat u weet hoe u het volgende moet doen:

Methoden voor eenmalige aanmelding

Er zijn twee manieren voor toepassingen die MSAL voor Android gebruiken om eenmalige aanmelding te bereiken:

  • Via een brokertoepassing

  • Via de systeembrowser

    Het is raadzaam om een brokertoepassing te gebruiken voor voordelen zoals eenmalige aanmelding voor het hele apparaat, accountbeheer en voorwaardelijke toegang. Uw gebruikers moeten echter aanvullende toepassingen downloaden.

Eenmalige aanmelding via brokered-verificatie

U wordt aangeraden een van de verificatiebrokers van Microsoft te gebruiken om deel te nemen aan eenmalige aanmelding voor het hele apparaat en om te voldoen aan het beleid voor voorwaardelijke toegang van de organisatie. Integratie met een broker biedt de volgende voordelen:

  • Apparaat-SSO
  • Voorwaardelijke toegang voor:
    • App-beveiliging van Intune
    • Apparaatregistratie (Workplace Join)
    • Beheer van mobiele apparaten
  • Apparaatbreed accountbeheer
    • via Android AccountManager & Account Instellingen
    • 'Werkaccount' - aangepast accounttype

Op Android is de Microsoft Authentication Broker een onderdeel dat is opgenomen in de apps Microsoft Authenticator en Intune-bedrijfsportal.

In het volgende diagram ziet u de relatie tussen uw app, de MSAL en de verificatiebrokers van Microsoft.

Diagram showing how an application relates to MSAL, broker apps, and the Android account manager.

Apps die als host optreden voor een broker, installeren

Apps die als host optreden voor een broker kunnen op elk ogenblik worden geïnstalleerd door de eigenaar van het apparaat via de app store (doorgaans Google Play Store). Sommige API's (resources) worden echter beveiligd door beleidsregels voor voorwaardelijke toegang die de volgende eisen stellen aan de apparaten:

  • Geregistreerd (aan werkplek toegevoegd) en/of
  • Ingeschreven bij Apparaatbeheer of
  • Ingeschreven bij Intune-app-beveiliging

Als er nog geen broker-app op een apparaat is geïnstalleerd, geeft MSAL de gebruiker opdracht om er een te installeren zodra de app een token interactief probeert op te halen. De app moet de gebruiker vervolgens begeleiden doorheen de stappen om het apparaat te laten voldoen aan het vereiste beleid.

Effecten van het installeren en verwijderen van een broker

Wanneer een broker is geïnstalleerd

Wanneer een broker op een apparaat wordt geïnstalleerd, worden alle volgende interactieve tokenaanvragen (aanroepen naar acquireToken()) verwerkt door de broker in plaats van lokaal door MSAL. Een SSO-status die eerder beschikbaar was voor MSAL, is niet beschikbaar voor de broker. Als gevolg hiervan moet de gebruiker zich opnieuw verifiëren of een account selecteren in de bestaande lijst met accounts die bekend zijn bij het apparaat.

Als u een broker installeert, hoeft de gebruiker zich niet opnieuw aan te melden. Alleen wanneer de gebruiker een MsalUiRequiredException moet oplossen, gaat de volgende aanvraag naar de broker. MsalUiRequiredException kan om verschillende redenen worden gegenereerd en moet interactief worden opgelost. Voorbeeld:

  • De gebruiker heeft het wachtwoord dat is gekoppeld aan het account, gewijzigd.
  • Het gebruikersaccount voldoet niet meer aan een beleid voor voorwaardelijke toegang.
  • De gebruiker heeft zijn toestemming voor de app om aan zijn account te worden gekoppeld, ingetrokken.

Meerdere brokers: als er meerdere brokers op een apparaat zijn geïnstalleerd, is de broker die het eerst werd geïnstalleerd, altijd de actieve broker. Er kan slechts één broker actief zijn op een apparaat.

Wanneer een broker is verwijderd

Als er slechts één brokerhosting-app is geïnstalleerd en deze wordt verwijderd, moet de gebruiker zich opnieuw aanmelden. Als u de actieve broker verwijdert, worden het account en de bijbehorende tokens van het apparaat verwijderd.

Als Intune-bedrijfsportal is geïnstalleerd en als de actieve broker werkt, en als ook Microsoft Authenticator is geïnstalleerd, moet de gebruiker zich opnieuw aanmelden als de Intune-bedrijfsportal (actieve broker) wordt verwijderd. Zodra ze zich opnieuw aanmelden, wordt de Microsoft Authenticator-app de actieve broker.

Integreren met een broker

Een omleidings-URI genereren voor een broker

Tip

Stappen in dit artikel kunnen enigszins variëren op basis van de portal waaruit u begint.

U moet een omleidings-URI die compatibel is met de broker, registreren. De omleidings-URI voor de broker moet de pakketnaam van uw app en de base64-gecodeerde weergave van de handtekening van uw app bevatten.

De indeling van de omleidings-URI is: msauth://<yourpackagename>/<base64urlencodedsignature>

U kunt keytool gebruiken om een met Base64 gecodeerde handtekeninghash te genereren met behulp van de ondertekeningssleutels van uw app en vervolgens uw omleidings-URI te genereren met die hash.

Linux en macOS:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Nadat u een handtekening-hash met keytool hebt gegenereerd, gebruikt u de Azure-portal om de omleidings-URI te genereren:

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator.
  2. Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om over te schakelen naar de tenant met de app-registratie vanuit het menu Mappen en abonnementen.
  3. Blader naar identiteitstoepassingen>> App-registraties.
  4. Selecteer uw toepassing en selecteer vervolgens Authentication>Add a platform>Android.
  5. Voer in het deelvenster Uw Android-app configureren dat wordt geopend, de handtekening-hash in die u eerder hebt gegenereerd en een pakketnaam.
  6. Selecteer de knop Configureren.

De omleidings-URI wordt voor u gegenereerd en wordt weergegeven in het veld Omleidings-URI van het Android-configuratievenster.

Zie Uw app ondertekenen in de Gebruikershandleiding van Android Studio voor meer informatie over het ondertekenen van uw app.

MSAL configureren om een broker te gebruiken

Als u een broker in uw app wilt gebruiken, moet u bevestigen dat u de brokeromleiding hebt geconfigureerd. Neem bijvoorbeeld ook uw omleidings-URI met broker op en geef aan dat u deze hebt geregistreerd door de volgende instellingen op te nemen in uw MSAL-configuratiebestand:

"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true

MSAL communiceert op twee manieren met de broker:

  • Aan broker gebonden service
  • Android-accountmanager

MSAL maakt eerst gebruik van de aan de broker gebonden service omdat voor het aanroepen van deze service geen Android-machtigingen zijn vereist. Als de binding met de afhankelijke service mislukt, gebruikt MSAL de Android AccountManager-API. MSAL doet dit alleen als uw app de "READ_CONTACTS" machtiging al heeft gekregen.

Als u een MsalClientException met foutcode "BROKER_BIND_FAILURE" krijgt, zijn er twee opties:

  • Vraag de gebruiker om energieverbruikoptimalisatie uit te schakelen voor de Microsoft Authenticator-app en de Intune-bedrijfsportal.
  • Vraag de gebruiker om de "READ_CONTACTS" machtiging te verlenen

Brokerintegratie verifiëren

Het is wellicht niet onmiddellijk duidelijk dat brokerintegratie werkt, maar u kunt de volgende stappen gebruiken om het volgende te controleren:

  1. Vul op uw Android-apparaat een aanvraag in met behulp van de broker.
  2. Zoek in de instellingen op uw Android-apparaat naar een nieuw account dat overeenkomt met het account waarmee u bent geverifieerd. Het account moet van het type Werkaccount zijn.

U kunt het account verwijderen via de instellingen als u de test wilt herhalen.

Eenmalige aanmelding via systeembrowser

Android-toepassingen hebben de mogelijkheid om de aangepaste tabbladen van de WEBVIEWsysteembrowser of Chrome te gebruiken voor verificatiegebruikerservaring. Als de toepassing geen brokered verificatie gebruikt, moet deze de systeembrowser gebruiken in plaats van de systeemeigen webweergave om eenmalige aanmelding te bereiken.

Machtigingsagenten

Het kiezen van een specifieke strategie voor autorisatieagents is belangrijk en vertegenwoordigt aanvullende functionaliteits-apps die kunnen worden aangepast. U wordt aangeraden WEBVIEW te gebruiken. Voor meer informatie over andere confguratiewaarden (zie Inzicht in het ANDROID MSAL-configuratiebestand.

MSAL ondersteunt autorisatie met behulp van een WEBVIEW of de systeembrowser. In de onderstaande afbeelding ziet u hoe dit eruit ziet met behulp van de WEBVIEWof de systeembrowser met of zonder CustomTabs:

MSAL login examples

Gevolgen voor eenmalige aanmelding

Als de toepassing een WEBVIEW strategie gebruikt zonder integratie met brokered auth in hun app, hebben gebruikers geen ervaring voor eenmalige aanmelding op het apparaat of tussen systeemeigen apps en web-apps.

Appplications kunnen worden geïntegreerd met MSAL om toestemming BROWSER te geven. In tegenstelling tot WEBVIEW kunt BROWSER u een cookie-JAR delen met de standaardsysteembrowser, waardoor er minder aanmeldingen mogelijk zijn met web- of andere systeemeigen apps die zijn geïntegreerd met aangepaste tabbladen.

Als de toepassing MSAL gebruikt met een broker zoals Microsoft Authenticator of Intune-bedrijfsportal, kunnen gebruikers SSO-ervaring hebben voor toepassingen als ze een actieve aanmelding met een van de apps hebben.

Notitie

MSAL met broker maakt gebruik van WebView en biedt eenmalige aanmelding (SSO) voor alle toepassingen die MSAL-bibliotheek gebruiken en deelnemen aan brokered-verificatie. De SSO-status van broker wordt niet uitgebreid naar andere apps die geen gebruik maken van MSAL.

Webweergave

Als u de webweergave in de app wilt gebruiken, plaatst u de volgende regel in de JSON van de app-configuratie die wordt doorgegeven aan MSAL:

"authorization_user_agent" : "WEBVIEW"

Wanneer de in-app WEBVIEWwordt gebruikt, meldt de gebruiker zich rechtstreeks aan bij de app. De tokens worden bewaard in de sandbox van de app en zijn niet beschikbaar buiten het cookie-opslagbestand van de app. Als gevolg hiervan kan de gebruiker geen SSO-ervaring hebben in toepassingen, tenzij de apps zijn geïntegreerd met de Authenticator of Bedrijfsportal.

WEBVIEW biedt echter wel de mogelijkheid om het uiterlijk van de gebruikersinterface voor het aanmelden aan te passen. Zie Android-webweergaven voor meer informatie over het uitvoeren van deze aanpassing.

Browser

We raden u aan WEBVIEW te gebruiken, hoewel we een optie bieden om browser en een aangepaste tabstrategie te gebruiken. U kunt deze strategie expliciet aangeven met behulp van de volgende JSON-configuratie in het aangepaste configuratiebestand:

"authorization_user_agent" : "BROWSER"

Gebruik deze methode om eenmalige aanmelding via de browser van het apparaat te bieden. MSAL maakt gebruik van een gedeelde cookieopslag waarmee andere systeemeigen apps of web-apps eenmalige aanmelding op het apparaat kunnen bereiken met behulp van de permanente set sessiecookies die is ingesteld door MSAL.

Heuristiek van browserselectie

Omdat het onmogelijk is voor MSAL om het exacte browserpakket op te geven dat moet worden gebruikt op elke van de brede reeks Android-telefoons, implementeert MSAL een heuristiek voor de browserselectie heuristiek die probeert de beste eenmalige aanmelding voor meerdere apparaten te bieden.

MSAL haalt voornamelijk de standaardbrowser op uit pakketbeheer en controleert of deze zich in een geteste lijst van veilige browsers bevindt. Als dat niet zo is, valt MSAL terug op het gebruik van de webweergave in plaats van een andere niet-standaardbrowser te starten vanaf de veilige lijst. De standaardbrowser wordt gekozen, ongeacht of deze aangepaste tabbladen ondersteunt. Als de browser aangepaste tabbladen ondersteunt, start MSAL het aangepaste tabblad. Aangepaste tabbladen hebben een uiterlijk en gevoel dichter bij een in-app WebView en maken eenvoudige aanpassing van de gebruikersinterface mogelijk. Zie Aangepaste tabbladen in Android voor meer informatie.

Als er geen browserpakketten op het apparaat zijn, gebruikt MSAL de in-app WebView. Als de standaardinstelling van het apparaat niet wordt gewijzigd, moet dezelfde browser worden gestart voor elke aanmelding om eenmalige aanmelding te garanderen.

Geteste browsers

De volgende browsers zijn getest om te zien of ze correct worden omgeleid naar de "redirect_uri" opgegeven in het configuratiebestand:

Apparaat Ingebouwde browser Chrome Opera Microsoft Edge UC Browser Firefox
Nexus 4 (API 17) geslaagd geslaagd niet van toepassing niet van toepassing niet van toepassing niet van toepassing
Samsung S7 (API 25) geslaagd1 geslaagd geslaagd geslaagd mislukt geslaagd
Vivo (API 26) geslaagd geslaagd geslaagd geslaagd geslaagd mislukt
Pixel 2 (API 26) geslaagd geslaagd geslaagd geslaagd mislukt geslaagd
Oppo geslaagd niet van toepassing2 niet van toepassing niet van toepassing niet van toepassing niet van toepassing
OnePlus (API 25) geslaagd geslaagd geslaagd geslaagd mislukt geslaagd
Nexus (API 28) geslaagd geslaagd geslaagd geslaagd mislukt geslaagd
MI geslaagd geslaagd geslaagd geslaagd mislukt geslaagd

1De ingebouwde browser van Samsung is Samsung Internet.
2De standaardbrowser kan niet worden gewijzigd binnen de instelling van het Oppo-apparaat.

Volgende stappen

Met de modus Gedeeld apparaat voor Android-apparaten kunt u een Android-apparaat configureren, zodat het gemakkelijk kan worden gedeeld door meerdere werknemers.