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 toepassingen. Het verbetert de gebruikerservaring en verbetert de beveiliging door het aantal wachtwoorden te verminderen dat gebruikers moeten beheren, waardoor het risico op wachtwoordmoeheid en bijbehorende beveiligingsproblemen wordt verlaagd.
Het Microsoft Identity Platform en de Microsoft Authentication Library (MSAL) helpen u bij het inschakelen van eenmalige aanmelding in uw suite met toepassingen. Door Broker-mogelijkheid in te schakelen, kunt u eenmalige aanmelding uitbreiden op 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:
- Uw app inrichten. Zie de instructies voor het maken van een app in de Android-zelfstudie voor meer informatie
- Uw toepassing integreren met MSAL voor Android
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 Settings
- 'Werkaccount' - aangepast accounttype
Op Android is Microsoft Authentication Broker een onderdeel dat is opgenomen in de Microsoft Authenticator- Intune-bedrijfsportal- en Koppeling met Windows-apps.
In het volgende diagram ziet u de relatie tussen uw app, de MSAL en de verificatiebrokers van Microsoft.
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 op het apparaat met bovenstaande vereisten nog geen broker-app is geïnstalleerd, geeft MSAL de gebruiker de opdracht om er een te installeren zodra de app een token interactief probeert op te halen. De app leidt de gebruiker vervolgens door de stappen om het apparaat te laten voldoen aan het vereiste beleid. Als er geen beleidsvereiste is of als de gebruiker zich aanmeldt met een Microsoft-account, is de installatie van broker-apps niet vereist.
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, identificeert MSAL de actieve broker zelfstandig om het verificatieproces te voltooien
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 Microsoft Authenticator, Intune-bedrijfsportal of Koppeling met Windows wordt verwijderd, wordt de gebruiker mogelijk gevraagd zich opnieuw aan te melden.
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:
- Meld u als cloudtoepassingsbeheerder aan bij het Microsoft Entra-beheercentrum.
- 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.
- Blader naar identiteitstoepassingen>> App-registraties.
- Selecteer uw toepassing en selecteer vervolgens Authentication>Add a platform>Android.
- Voer in het deelvenster Uw Android-app configureren dat wordt geopend, de handtekening-hash in die u eerder hebt gegenereerd en een pakketnaam.
- 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
Met broker verwante uitzonderingen
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:
- Vul op uw Android-apparaat een aanvraag in met behulp van de broker.
- 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 WEBVIEW
systeembrowser 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 WEBVIEW
of de systeembrowser met of zonder CustomTabs:
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.
Toepassingen kunnen worden geïntegreerd met MSAL om het BROWSER
te autoriseren. 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, Intune-bedrijfsportal of Koppeling met Windows, 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 WEBVIEW
wordt 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 Microsoft Authenticator-app, Intune-bedrijfsportal of Koppeling met Windows.
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.
Ga naar de volgende pagina's voor meer informatie over brokertoepassingen: