Dela via


Aktivera enkel inloggning mellan appar på Android med MSAL

Med enkel inloggning (SSO) kan användarna bara ange sina autentiseringsuppgifter en gång och få dessa autentiseringsuppgifter automatiskt att fungera i alla program. Det förbättrar användarupplevelsen och förbättrar säkerheten genom att minska antalet lösenord som användarna behöver hantera, vilket minskar risken för lösenordströtthet och tillhörande sårbarheter.

Med Microsofts identitetsplattform och Microsoft Authentication Library (MSAL) kan du aktivera enkel inloggning i dina programpaket. Genom att aktivera Broker-funktionen kan du utöka enkel inloggning på hela enheten.

I den här instruktioner får du lära dig hur du konfigurerar de SDK:er som används av ditt program för att tillhandahålla enkel inloggning till dina kunder.

Förutsättningar

Den här instruktioner förutsätter att du vet hur man:

Metoder för Single Sign-On (SSO)

Det finns två sätt för program som använder MSAL för Android att uppnå enkel inloggning:

  • Via ett broker-program

  • Via systemwebbläsaren

    Vi rekommenderar att du använder ett koordinatorprogram för förmåner som enhetsomfattande enkel inloggning, kontohantering och villkorsstyrd åtkomst. Det kräver dock att användarna laddar ned ytterligare program.

Enkel inloggning genom förmedlad autentisering

Vi rekommenderar att du använder en av Microsofts autentiseringskoordinatorer för att delta i enhetsomfattande enkel inloggning och för att uppfylla organisationens principer för villkorsstyrd åtkomst. Integrering med en mäklare medför följande fördelar:

  • Enkel inloggning för enhet
  • Villkorlig åtkomst för:
    • Intune-appskydd
    • Enhetsregistrering (anslutning till arbetsplats)
    • Hantering av mobila enheter
  • Kontohantering för hela enheten
    • via Android AccountManager och kontoinställningar
    • "Arbetskonto" – anpassad kontotyp

På Android är Microsoft Authentication Broker en komponent som ingår i Microsoft Authenticator, Intune-företagsportal och Länk till Windows appar.

Följande diagram illustrerar relationen mellan din app, MSAL och Microsofts autentiseringskoordinatorer.

Diagram som visar hur ett program relaterar till MSAL, broker-appar och Android-kontohanteraren.

Installera appar som är värdar för en mäklare

Broker-hosting-appar kan installeras av enhetens ägare från deras appbutik (vanligtvis Google Play Store) när som helst. Vissa API:er (resurser) skyddas dock av principer för villkorsstyrd åtkomst som kräver att enheterna är:

  • Registrerad (arbetsplats ansluten) och/eller
  • Registrerad i Enhetshantering eller
  • Registrerad i Intune App Protection

Om enheten med ovan nämnda krav inte redan har en brokerapp installerad, instruerar MSAL användaren att installera en så snart appen försöker hämta en token interaktivt. Appen leder sedan användaren genom stegen för att göra enheten kompatibel med den princip som krävs. Om det inte finns något principkrav eller om användaren loggar in med Microsoft-kontot krävs inte broker-appinstallation.

Effekter av att installera och avinstallera en mäklare

När en mäklare är installerad

När en broker är installerad på en enhet hanteras alla efterföljande interaktiva tokenbegäranden (anrop till acquireToken()) av brokern i stället för lokalt av MSAL. Inget SSO-tillstånd som tidigare var tillgängligt för MSAL finns tillgängligt för broker. Därför måste användaren autentisera igen eller välja ett konto i den befintliga listan över konton som enheten känner till.

Att installera en broker kräver inte att användaren loggar in igen. Först när användaren behöver lösa en MsalUiRequiredException kommer nästa begäran att gå till mäklaren. MsalUiRequiredException kan kastas av flera orsaker och måste lösas interaktivt. Till exempel:

  • Användaren har ändrat lösenordet som är associerat med deras konto.
  • Användarens konto uppfyller inte längre en princip för villkorsstyrd åtkomst.
  • Användaren återkallade sitt medgivande för att appen skulle associeras med deras konto.

Flera asynkrona koordinatorer – Om flera asynkrona koordinatorer är installerade på en enhet identifierar MSAL den aktiva koordinatorn på egen hand för att slutföra autentiseringsprocessen

När en mäklare avinstalleras

Om det bara finns en mäklarapp installerad och den tas bort måste användaren logga in igen. Om du avinstallerar den aktiva mäklaren tas kontot och de associerade token bort från enheten.

Om Microsoft Authenticator, Intune-företagsportal eller Länk till Windows avinstalleras kan användaren uppmanas att logga in igen.

Integrera med en mäklare

Generera en omdirigerings-URI för en förmedlare

Du måste registrera en omdirigerings-URI som är kompatibel med förmedlaren. Omdirigerings-URI:n för broker ska innehålla appens paketnamn och den Base64-kodade representationen av appens signatur.

Formatet för omdirigerings-URI:n är: msauth://<yourpackagename>/<base64urlencodedsignature>

Du kan använda keytool för att generera en Base64-kodad signaturhash med hjälp av appens signeringsnycklar och sedan generera din omdirigerings-URI med hjälp av hashen.

Linux och 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

När du har genererat en signaturhash med keytool använder du Azure Portal för att generera omdirigerings-URI:n:

  1. Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
  2. Om du har åtkomst till flera hyresgäster, använd ikonen Inställningar i den översta menyn för att växla till den hyresgäst som innehåller appregistreringen från menyn Kataloger + prenumerationer.
  3. Bläddra till Identitet>Applikationer>Appregistreringar.
  4. Välj din applikation och klicka sedan på Autentisering>Lägg till en plattform>Android.
  5. I fönstret Konfigurera din Android-app som öppnas anger du den signatur-hash som du genererade tidigare och ett paketnamn.
  6. Välj 'Konfigurera'-knappen.

Omdirigerings-URI:n genereras åt dig och visas i androidkonfigurationsfönstrets omdirigerings-URI-fält.

Mer information om hur du signerar din app finns i Signera din app i Android Studio-användarhandboken.

Konfigurera MSAL för att använda en broker

För att använda en mellanhand i din app måste du intyga att du har konfigurerat din mellanhandens omdirigering. Inkludera till exempel både din mäklareaktiverade omdirigerings-URI och ange att du har registrerat den genom att inkludera följande inställningar i din MSAL-konfigurationsfil:

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

MSAL kommunicerar med mäklaren på två sätt:

  • Mäklartjänst som är bunden
  • Android Kontohanterare

MSAL använder i första hand den broker-bundna tjänsten eftersom det inte krävs några Android-behörigheter för att anropa den här tjänsten. Om bindningen till den bundna tjänsten misslyckas använder MSAL Android AccountManager-API:et. MSAL gör det bara om din app redan har beviljats behörigheten "READ_CONTACTS" .

Om du får en MsalClientException med felkod "BROKER_BIND_FAILURE"finns det två alternativ:

  • Be användaren att inaktivera energioptimering för Microsoft Authenticator-appen och Intune-företagsportal.
  • Be användaren att bevilja behörigheten "READ_CONTACTS"

Verifiera mäklarintegrering

Det kanske inte är omedelbart klart att koordinatorintegrering fungerar, men du kan använda följande steg för att kontrollera:

  1. På din Android-enhet, slutför en begäran med hjälp av en mäklare.
  2. I inställningarna på din Android-enhet letar du efter ett nyligen skapat konto som motsvarar det konto som du autentiserade med. Kontot ska vara av typen Arbetskonto.

Du kan ta bort kontot från inställningarna om du vill upprepa testet.

Enkel inloggning via systemwebbläsare

Android-program har möjlighet att använda WEBVIEW, systemwebbläsaren eller anpassade Chrome-flikar för användarupplevelsen för autentisering. Om programmet inte använder asynkron autentisering måste det använda systemwebbläsaren i stället för den interna webbvyn för att uppnå enkel inloggning.

Auktoriseringsagenter

Det är viktigt att välja en specifik strategi för auktoriseringsagenter och representerar ytterligare funktioner som appar kan anpassa. Vi rekommenderar att du använder "WEBVIEW". För att få veta mer om andra konfigurationsvärden (se Förstå Android MSAL-konfigurationsfilen.

MSAL stöder auktorisering med hjälp av en WEBVIEW, eller systemwebbläsare. Bilden nedan visar hur den ser ut med hjälp av WEBVIEW, eller systemwebbläsaren med CustomTabs eller utan CustomTabs:

MSAL-inloggningsexempel

Konsekvenser av SSO (Single Sign-On)

Om programmet använder en WEBVIEW strategi utan att integrera med asynkron autentisering i sin app har användarna ingen enkel inloggningsupplevelse på enheten eller mellan interna appar och webbappar.

Applikationer kan integreras med MSAL för att använda BROWSER för att auktorisera. Till skillnad från WEBVIEW delar BROWSER en cookie-behållare med standardsystemwebbläsaren, vilket möjliggör färre inloggningar med webbläsaren eller andra integrerade appar som är kopplade till Anpassade Flikar.

Om applikationen använder MSAL med en autentiseringsagent som Microsoft Authenticator, Intune-företagsportal eller Länk till Windows, kan användarna få en SSO-upplevelse mellan applikationer om de har en aktiv inloggning med någon av apparna.

Kommentar

MSAL med broker använder WebView och tillhandahåller enkel inloggning (SSO) för alla program som använder MSAL-biblioteket och deltar i asynkron autentisering. SSO-tillståndet från broker utökas inte till andra appar som inte använder MSAL.

WebView

Om du vill använda webbvyn i appen lägger du följande rad i appkonfigurationens JSON som skickas till MSAL:

"authorization_user_agent" : "WEBVIEW"

När användaren använder appen WEBVIEW loggar användaren in direkt i appen. Token sparas i appens sandbox-miljö och är inte tillgängliga utanför appens cookie-jar. Därför kan användaren inte ha SSO-upplevelse i program om inte apparna integreras med Microsoft Authenticator-appen, Intune-företagsportal eller Länk till Windows.

Ger dock WEBVIEW möjlighet att anpassa utseendet och känslan för inloggningsgränssnittet. Mer information om hur du gör den här anpassningen finns i Android WebViews .

Webbläsare

Vi rekommenderar att du använder WEBVIEW, även om vi erbjuder alternativ för att använda webbläsare och en strategi för anpassade flikar . Du kan uttryckligen ange den här strategin med hjälp av följande JSON-konfiguration i den anpassade konfigurationsfilen:

"authorization_user_agent" : "BROWSER"

Använd den här metoden för att tillhandahålla enkel inloggning via enhetens webbläsare. MSAL använder en delad cookie-burk, vilket gör det möjligt för andra inbyggda appar eller webbappar att uppnå enkel inloggning på enheten med hjälp av den sparade sessionscookie som MSAL har satt.

Heuristisk val av webbläsare

Eftersom det är omöjligt för MSAL att ange det exakta webbläsarpaketet som ska användas på varje Android-telefon i det breda utbudet, implementerar MSAL en webbläsarvalsheuristik som försöker erbjuda den bästa SSO mellan enheter.

MSAL hämtar främst standardwebbläsaren från pakethanteraren och kontrollerar om den finns i en testad lista över säkra webbläsare. Annars återgår MSAL till att använda webbvyn i stället för att starta en annan webbläsare som inte är standard från listan över säkra. Standardwebbläsaren väljs oavsett om den stöder anpassade flikar. Om webbläsaren stöder Anpassade Flikar startar MSAL den anpassade fliken. Anpassade flikar har ett utseende och en känsla som liknar en inbyggd appwebbläsare och möjliggör grundläggande anpassning av användargränssnittet. Mer information finns i Anpassade flikar i Android .

Om det inte finns några webbläsarpaket på enheten använder MSAL in-app WebView. Om enhetens standardinställning inte ändras bör samma webbläsare startas för varje inloggning för att säkerställa enkel inloggning.

Testade webbläsare

Följande webbläsare har testats för att se om de omdirigeras korrekt till den "redirect_uri" som anges i konfigurationsfilen:

Enhet Inbyggd webbläsare Chrome Opera Microsoft Edge UC Browser Firefox
Nexus 4 (API 17) godkänna passera inte tillämpligt inte tillämpligt inte tillämpligt inte tillämpligt
Samsung S7 (API 25) pass1 passera passera godkänna misslyckas passera
Vivo (API 26) passera passera passera passera / klara / godkänna passera misslyckas
Pixel 2 (API 26) passera passera passera passera misslyckas passera
Oppo passera ej tillämpligt2 inte tillämpligt inte tillämpligt inte tillämpligt inte tillämpligt
OnePlus (API 25) passera passera passera passera misslyckas passera
Nexus (API 28) passera passera passera klarar misslyckas passera
MI passera passera passera passera misslyckas passera

1Samsungs inbyggda webbläsare är Samsung Internet.
2Standardwebbläsaren kan inte ändras i oppo-enhetsinställningen.

Nästa steg

Med läget Delad enhet för Android-enheter kan du konfigurera en Android-enhet så att den enkelt kan delas av flera anställda.

För mer information om mäklaransökningar, gå till följande sidor: