Delen via


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 de Broker-functionaliteit in te schakelen, kunt u SSO (eenmalige aanmelding) uitbreiden naar het hele apparaat.

In deze handleiding leert u hoe u de SDK's die in uw toepassing worden gebruikt, kunt configureren om uw klanten SSO 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 voor het realiseren van eenmalige aanmelding:

  • Via een makelaarsapplicatie

  • 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.

SSO via verificatie door een tussenpersoon

U wordt aangeraden een van de authenticatiebrokers van Microsoft te gebruiken om deel te nemen aan apparaatbrede Single Sign-On (SSO) en om te voldoen aan de voorwaardelijke toegangspolitieken van de organisatie. Integratie met een broker biedt de volgende voordelen:

  • Apparaat-SSO
  • Voorwaardelijke toegang voor:
    • App-beveiliging van Intune
    • Apparaatregistratie (Werkplek Lidmaatschap)
    • Beheer van mobiele apparaten
  • Apparaatbreed accountbeheer
    • via Android Accountbeheerder & Accountinstellingen
    • 'Werkaccount' - aangepast account-type

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.

Diagram dat toont hoe een toepassing wordt gekoppeld met MSAL, broker-apps en de Android-accountbeheerder.

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 opgeworpen 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

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 Cloudtoepassingsbeheerder.
  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 Identity>Toepassingen>App-registraties.
  4. Selecteer uw toepassing en selecteer vervolgens Authenticatie>Een platform toevoegen>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 uw omleidings-URI die broker-enabled is, op en geef aan dat u deze hebt geregistreerd door de volgende instellingen in uw MSAL-configuratiebestand op te nemen:

"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 geautoriseerde authenticatie gebruikt, moet deze de systeembrowser gebruiken in plaats van de interne webweergave om eenmalige aanmelding (Single Sign-On) te bereiken.

Machtigingsagenten

Het kiezen van een specifieke strategie voor autorisatieagents is belangrijk en biedt extra functionaliteit die apps kunnen aanpassen. U wordt aangeraden WEBVIEW te gebruiken. Voor meer informatie over andere configuratiewaarden (zie Meer informatie over 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-aanmeldingsvoorbeelden

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 BROWSER te gebruiken voor autorisatie. In tegenstelling tot WEBVIEW deelt u BROWSER een cookiejar met de standaardsysteembrowser, waardoor er minder aanmeldingen nodig zijn met web- of andere systeemeigen apps die zijn geïntegreerd met aangepaste tabbalken.

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.

WebView

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 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.

Webbrowser

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 een Single Sign-On (SSO) ervaring via de browser van het apparaat te bieden. MSAL maakt gebruik van een gedeelde cookieopslag, waarmee andere systeemeigen apps of webapps single sign-on op het apparaat kunnen bereiken met behulp van de permanente sessiecookie die is ingesteld door MSAL.

Heuristiek van browserselectie

Omdat het onmogelijk is voor MSAL om het exacte browserpakket op te geven dat gebruikt moet worden op de diverse reeks Android-telefoons, implementeert MSAL een selectieheuristiek voor browsers die probeert de beste SSO-ervaring op 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 bij elke aanmelding dezelfde browser worden gestart om de SSO-ervaring 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) doorgaan geslaagd niet van toepassing niet van toepassing niet van toepassing niet van toepassing
Samsung S7 (API 25) pas1 geslaagd geslaagd passeren mislukt geslaagd
Vivo (API 26) geslaagd geslaagd geslaagd geslaagd doorgaan mislukt
Pixel 2 (API 26) geslaagd geslaagd doorgaan 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 doorgaan geslaagd mislukt passeren
Nexus (API 28) geslaagd geslaagd voorbijgaan geslaagd mislukt geslaagd
MI passeren geslaagd geslaagd geslaagd mislukt Overgaan

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: