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 mellan 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 Microsofts autentiseringsbibliotek (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 (Software Development Kit) 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 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 extra program.

SSO via förmedlad autentisering

Vi rekommenderar att du använder en av Microsoft autentiseringskoordinatorer för att delta i enhetsomfattande enkel inloggning och för att uppfylla organisationens principer för villkorsstyrd åtkomst. Integration med en broker ger 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 apparna Microsoft Authenticator, Intune Company Portal och Link to Windows.

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

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

Installera appar som är värd för en broker

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 Správa zariadení eller
  • Registrerad i Intune App Protection

Om enheten med ovan nämnda kraven inte redan har en brokerapp installerad uppmanar MSAL användaren att installera en sådan 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-konto krävs inte broker-appinstallation.

Effekter av att installera och avinstallera en broker

När en broker installeras

När en broker installeras på en enhet hanteras alla efterföljande interaktiva tokenbegäranden (anrop till acquireToken()) av brokern i stället för lokalt av MSAL. Inga SSO-tillstånd som tidigare var tillgängliga för MSAL är tillgängliga för mäklaren. 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 hantera ett MsalUiRequiredException går nästa förfrågan vidare till brokern. MsalUiRequiredException kan utlösas av flera skäl och måste åtgärdas interaktivt. Ett 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 mäklaren på egen hand för att slutföra autentiseringsprocessen

När en broker avinstalleras

Om det bara finns en installerad broker-värdapp och den tas bort måste användaren logga in igen. Att avinstallera den aktiva brokern tar bort kontot och tillhörande token från enheten.

Om Microsoft Authenticator, Intune Company Portal eller Länk till Windows avinstalleras kan användaren bli ombedd att logga in igen.

Integrera med en broker

Generera en omdirigerings-URI för en broker

Du måste registrera en omdirigerings-URI som är kompatibel med förmedlaren. Omdirigerings-URI:n för broker ska innehålla din apps paketnamn och den Base64-kodade representationen av din apps 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 en molnprogramadministratör.
  2. Om du har åtkomst till flera klienter, använd ikonen Inställningar i den övre menyn för att växla till klienten som innehåller appregistreringen från menyn Kataloger + prenumerationer.
  3. Bläddra till Entra ID>.
  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önstretsomdirigerings-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 broker i din app måste du intyga att du har konfigurerat din brokeromdirigering. Inkludera till exempel både din brokeraktiverade omdirigerings-URI – och ange att du registrerade den – genom att ta med 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:

  • Tjänst bunden till en broker
  • Android AccountManager

MSAL använder först den brokerbundna tjänsten eftersom det inte krävs några Android-behörigheter för att anropa 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-Company Portal.
  • Be användaren att bevilja behörigheten "READ_CONTACTS"

Kontrollera brokerintegration

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

  1. Slutför en begäran på din Android-enhet med hjälp av broker.
  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 extra 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-inloggningsexempel

Konsekvenser av SSO

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

Program kan integreras med MSAL för att använda BROWSER för auktorisering. Till skillnad från WEBVIEW delar BROWSER cookie-lagring med systemets standardwebbläsare, vilket minskar behovet av att logga in i webbappar eller andra inbyggda appar som har integrerats med Custom Tabs.

Om appen använder MSAL med en broker som Microsoft Authenticator, Intune Company Portal eller Länk till Windows kan användarna få enkel inloggning mellan appar om de har en aktiv inloggning i någon av apparna.

Note

MSAL med broker använder WebView och tillhandahåller enkel inloggning 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 WEBVIEW i appen 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 mellan program om inte apparna integreras med Microsoft Authenticator-appen, Intune Company Portal eller Länka 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 cookielagring, vilket gör det möjligt för andra internappar eller webbappar att få enkel inloggning på enheten genom att använda den sparade sessionscookie som MSAL har angett.

Heuristisk val av webbläsare

Eftersom det är omöjligt för MSAL att ange exakt vilket webbläsarpaket som ska användas på var och en av det stora utbudet av Android-telefoner implementerar MSAL en heuristik för val av webbläsare som försöker ge bästa möjliga enkel inloggning på olika 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 har stöd för Custom Tabs öppnar MSAL en Custom Tab. Custom Tabs liknar en WebView i appen mer till utseende och känsla 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 Krom Opera Microsoft Edge UC-webbläsare Firefox
Nexus 4 (API 17) godkänd godkänd inte tillämpligt inte tillämpligt inte tillämpligt inte tillämpligt
Samsung S7 (API 25) pass1 godkänd godkänd godkänd fail (fel) godkänd
Vivo (API 26) godkänd godkänd godkänd godkänd godkänd fail (fel)
Pixel 2 (API 26) godkänd godkänd godkänd godkänd fail (fel) godkänd
Oppo godkänd ejtillämpligt 2 inte tillämpligt inte tillämpligt inte tillämpligt inte tillämpligt
OnePlus (API 25) godkänd godkänd godkänd godkänd fail (fel) godkänd
Nexus (API 28) godkänd godkänd godkänd godkänd fail (fel) godkänd
MI godkänd godkänd godkänd godkänd fail (fel) godkänd

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.

Mer information om mäklarprogram finns i: