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.

Med Microsofts identitetsplattform och Microsoft Authentication Library (MSAL) kan du aktivera enkel inloggning i din egen uppsättning appar. Med broker-funktionen och Authenticator-programmen kan du utöka enkel inloggning över 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 enkel inloggning

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 via asynkron 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 asynkron meddelandekö medför följande fördelar:

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

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

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

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

Installera appar som är värdar för en asynkron meddelandekö

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 en enhet inte redan har en asynkron app installerad instruerar MSAL användaren att installera en så snart appen försöker hämta en token interaktivt. Appen måste sedan leda användaren genom stegen för att göra enheten kompatibel med den princip som krävs.

Effekter av att installera och avinstallera en asynkron meddelandekö

När en asynkron meddelandekö har installerats

När en asynkron meddelandekö installeras på en enhet hanteras alla efterföljande interaktiva tokenbegäranden (anrop till acquireToken()) av asynkron meddelandekö i stället för lokalt av MSAL. Alla SSO-tillstånd som tidigare var tillgängliga för MSAL är inte tillgängliga för koordinatorn. 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 asynkron meddelandekö 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 asynkron meddelandekö. MsalUiRequiredException kan genereras 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 meddelandeköer är installerade på en enhet är den asynkrona meddelandekö som installerades först alltid den aktiva asynkron meddelandekö. Endast en enda asynkron meddelandekö kan vara aktiv på en enhet.

När en asynkron meddelandekö avinstalleras

Om det bara finns en asynkron värdapp installerad och den tas bort måste användaren logga in igen. Om du avinstallerar den aktiva asynkron meddelandekö tas kontot och associerade token bort från enheten.

Om Intune-företagsportal installeras och fungerar som aktiv asynkron meddelandekö och Microsoft Authenticator också installeras måste användaren logga in igen om Intune-företagsportal (aktiv asynkron meddelandekö) avinstalleras. När de loggar in igen blir Microsoft Authenticator-appen den aktiva koordinatorn.

Integrera med en asynkron meddelandekö

Generera en omdirigerings-URI för en asynkron meddelandekö

Dricks

Stegen i den här artikeln kan variera något beroende på vilken portal du börjar från.

Du måste registrera en omdirigerings-URI som är kompatibel med asynkron meddelandekö. Omdirigerings-URI:n för asynkron meddelandekö 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-portalen 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 klienter använder du ikonen Inställningar på den översta menyn för att växla till klientorganisationen som innehåller appregistreringen från menyn Kataloger + prenumerationer.
  3. Bläddra till Identitetsprogram>> Appregistreringar.
  4. Välj ditt program och välj sedan Autentisering>Lägg till en plattforms>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 knappen Konfigurera.

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 asynkron meddelandekö

Om du vill använda en asynkron meddelandekö i din app måste du intyga att du har konfigurerat din asynkrona omdirigering. Inkludera till exempel både din asynkrona aktiverade omdirigerings-URI – och ange att du har registrerat den – genom att inkludera följande inställningar i MSAL-konfigurationsfilen:

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

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

  • Tjänst som är bunden av asynkron meddelandek
  • Android AccountManager

MSAL använder först den asynkrona 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 koordinatorintegrering

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 du en begäran med hjälp av asynkron meddelandekö.
  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". Mer information om andra konfigurationsvärden finns i 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 login examples

Konsekvenser för enkel inloggning

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.

Appplications kan integreras med MSAL för att använda BROWSER för att auktorisera. Till skillnad från WEBVIEW kan BROWSER du dela en cookie-jar med standardsystemwebbläsaren som möjliggör färre inloggningar med webben eller andra inbyggda appar som har integrerats med anpassade flikar.

Om programmet använder MSAL med en asynkron meddelandekö som Microsoft Authenticator eller Intune-företagsportal kan användarna ha SSO-upplevelse i olika program 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 du använder appen WEBVIEWloggar användaren in direkt till 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 erfarenhet av enkel inloggning i program om inte apparna integreras med Authenticator eller Företagsportal.

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-jar som gör det möjligt för andra interna appar eller webbappar att uppnå enkel inloggning på enheten med hjälp av den bevarade sessionscookieuppsättningen från MSAL.

Heuristisk val av webbläsare

Eftersom det är omöjligt för MSAL att ange det exakta webbläsarpaketet som ska användas på var och en av de breda matriserna med Android-telefoner implementerar MSAL ett webbläsarvals-heuristiskt som försöker tillhandahålla den bästa enkel inloggningen 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 tar en titt och känner sig närmare en app WebView och tillåter 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) Passera Passera inte tillämpligt inte tillämpligt inte tillämpligt inte tillämpligt
Samsung S7 (API 25) pass1 Passera Passera Passera Misslyckas Passera
Vivo (API 26) Passera Passera Passera Passera 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 Passera 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.