Aktivieren von appübergreifendem SSO unter Android mit MSAL

Mit dem einmaligen Anmelden (Single Sign-On, SSO) können Benutzer ihre Anmeldeinformationen nur einmal eingeben, sodass diese Anmeldeinformationen anwendungsübergreifend automatisch funktionieren. Es verbessert die Benutzerfreundlichkeit und verbessert die Sicherheit, indem die Anzahl der Kennwörter verringert wird, die Benutzer verwalten müssen, wodurch das Risiko einer Kennwortermüdung und zugehöriger Sicherheitsrisiken verringert wird.

Die Microsoft Identity Platform und die Microsoft Authentication Library (MSAL) (MSAL) helfen Ihnen, SSO in Ihrer Anwendungssuite zu aktivieren. Durch aktivieren der Broker-Funktion können Sie SSO über das gesamte Gerät erweitern.

In dieser Vorgehensweise erfahren Sie, wie Sie die Software Development Kits (SDKs) konfigurieren, die von Ihrer Anwendung verwendet werden, um SSO Ihren Kunden zur Verfügung zu stellen.

Voraussetzungen

Dabei wird davon ausgegangen, dass Sie wissen, wie Sie:

Methoden für SSO

Es gibt zwei Möglichkeiten für Anwendungen, die MSAL für Android verwenden, um SSO zu erreichen:

  • Über eine Brokeranwendung

  • Über den Systembrowser

    Es wird empfohlen, eine Brokeranwendung für Vorteile wie geräteweite sSO, Kontoverwaltung und bedingten Zugriff zu verwenden. Es erfordert jedoch, dass Ihre Benutzer zusätzliche Anwendungen herunterladen.

SSO über brokerierte Authentifizierung

Es wird empfohlen, einen der Authentifizierungsbroker von Microsoft zu verwenden, um an geräteweitem SSO teilzunehmen und die Richtlinien für den bedingten Zugriff der Organisation zu erfüllen. Die Integration mit einem Broker bietet die folgenden Vorteile:

  • Geräte-SSO
  • Bedingter Zugriff für:
    • Intune App Protection
    • Geräteregistrierung (Workplace Join)
    • Verwaltung mobiler Geräte
  • Geräteweite Kontoverwaltung
    • über Android AccountManager & Kontoeinstellungen
    • "Geschäftskonto" – benutzerdefinierter Kontotyp

Unter Android ist der Microsoft Authentication Broker eine Komponente, die in den Microsoft Authenticator, Intune Unternehmensportal und Link zu Windows Apps enthalten ist.

Das folgende Diagramm veranschaulicht die Beziehung zwischen Ihrer App, dem MSAL und den Authentifizierungsbrokern Microsoft.

Diagramm, das zeigt, wie sich eine Anwendung auf MSAL, Broker-Apps und den Android-Konto-Manager bezieht.

Installieren von Apps, die einen Broker hosten

Brokerhosting-Apps können vom Gerätebesitzer jederzeit aus dem App Store (in der Regel Google Play Store) installiert werden. Einige APIs (Ressourcen) sind jedoch durch Richtlinien für bedingten Zugriff geschützt, für die Geräte erforderlich sind:

  • Registriert (Arbeitsbereich hinzugefügt) und/oder
  • Für Geräteverwaltung registriert oder
  • Für Intune App Protection angemeldet

Wenn das Gerät mit den oben genannten Anforderungen noch keine Broker-App installiert hat, weist MSAL den Benutzer an, eins zu installieren, sobald die App versucht, ein Token interaktiv abzurufen. Die App führt den Benutzer dann durch die Schritte, um das Gerät mit der erforderlichen Richtlinie kompatibel zu machen. Wenn keine Richtlinienanforderung besteht oder sich der Benutzer mit Microsoft-Konto anmeldet, ist die Broker-App-Installation nicht erforderlich.

Auswirkungen der Installation und Deinstallation eines Brokers

Wenn ein Broker installiert ist

Wenn ein Broker auf einem Gerät installiert ist, werden alle nachfolgenden interaktiven Tokenanforderungen (Aufrufe an acquireToken()) vom Broker statt lokal von MSAL verarbeitet. Alle zuvor für MSAL verfügbaren SSO-Status sind für den Broker nicht verfügbar. Daher muss sich der Benutzer erneut authentifizieren oder ein Konto aus der vorhandenen Liste der Konten auswählen, die dem Gerät bekannt sind.

Beim Installieren eines Brokers muss sich der Benutzer nicht erneut anmelden. Nur wenn der Benutzer ein MsalUiRequiredException auflösen muss, geht die nächste Anfrage an den Broker. MsalUiRequiredException kann aus mehreren Gründen ausgelöst werden und muss interaktiv aufgelöst werden. Beispiel:

  • Der Benutzer hat das dem Konto zugeordnete Kennwort geändert.
  • Das Konto des Benutzers erfüllt keine Richtlinie für den bedingten Zugriff mehr.
  • Die nutzende Person widerrief ihre Zustimmung dazu, dass die App mit ihrem Konto verknüpft ist.

Mehrere Broker – Wenn mehrere Broker auf einem Gerät installiert sind, identifiziert MSAL den aktiven Broker eigenständig, um den Authentifizierungsprozess abzuschließen.

Wenn ein Broker deinstalliert wird

Wenn nur eine Broker-Host-App installiert ist und sie entfernt wird, muss sich der Benutzer erneut anmelden. Durch die Deinstallation des aktiven Brokers werden das Konto und die zugehörigen Token vom Gerät entfernt.

Wenn Microsoft Authenticator, Intune Unternehmensportal oder Link zu Windows deinstalliert wird, wird der Benutzer möglicherweise aufgefordert, sich erneut anzumelden.

Integration mit einem Broker

Generieren eines Umleitungs-URI für einen Broker

Sie müssen einen Umleitungs-URI registrieren, der mit dem Broker kompatibel ist. Der Umleitungs-URI für den Broker sollte den Paketnamen Ihrer App und die base64-codierte Darstellung der Signatur Ihrer App enthalten.

Das Format des Umleitungs-URI lautet: msauth://<yourpackagename>/<base64urlencodedsignature>

Sie können keytool verwenden, um einen Base64-codierten Signaturhash mithilfe der Signaturschlüssel Ihrer App zu generieren und dann Ihren Umleitungs-URI mithilfe dieses Hashs zu generieren.

Linux und macOS:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Fenster:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Nachdem Sie einen Signaturhash mit Keytool generiert haben, verwenden Sie das Azure Portal, um den Umleitungs-URI zu generieren:

  1. Melden Sie sich beim Microsoft Entra Admin Center mindestens als Cloud-Anwendungsadministrator an.
  2. Wenn Sie Zugriff auf mehrere Mandanten haben, verwenden Sie das Symbol "Einstellungen" im oberen Menü, um zum Mandanten zu wechseln, der die App-Registrierung aus dem Menü "Verzeichnisse + Abonnements" enthält.
  3. Navigieren Sie zu Entra ID>App-Registrierungen.
  4. Wählen Sie Ihre App aus, und wählen Sie dann Authentifizierung>Plattform hinzufügen>Android.
  5. Geben Sie im daraufhin geöffneten Bereich "Android-App konfigurieren " den Signaturhash ein, den Sie zuvor erstellt haben, und einen Paketnamen.
  6. Wählen Sie die Schaltfläche Konfigurieren.

Der Umleitungs-URI wird für Sie generiert und im Feld "Umleitungs-URI" des Android-Konfigurationsbereichs angezeigt.

Weitere Informationen zum Signieren Ihrer App finden Sie im Android Studio-Benutzerhandbuch.

Konfigurieren von MSAL für die Verwendung eines Brokers

Um einen Broker in Ihrer App zu verwenden, müssen Sie bestätigen, dass Sie die Brokerumleitung konfiguriert haben. Fügen Sie beispielsweise sowohl Ihre für den Broker aktivierte Umleitungs-URI hinzu als auch die Angabe, dass Sie sie registriert haben, indem Sie die folgenden Einstellungen in Ihre MSAL-Konfigurationsdatei aufnehmen:

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

MSAL kommuniziert auf zwei Arten mit dem Broker:

  • an einen Broker gebundener Dienst
  • Android AccountManager

MSAL verwendet zuerst den brokergebundenen Dienst, da für den Aufruf dieses Diensts keine Android-Berechtigungen erforderlich sind. Wenn die Bindung an den gebundenen Dienst fehlschlägt, verwendet MSAL die Android AccountManager-API. MSAL tut dies nur, wenn Ihrer App die "READ_CONTACTS"-Berechtigung bereits erteilt wurde.

Wenn Sie ein MsalClientException mit dem Fehlercode "BROKER_BIND_FAILURE" erhalten, gibt es zwei Möglichkeiten:

  • Bitten Sie den Benutzer, die Energieoptimierung für die Microsoft Authenticator-App und die Intune-Unternehmensportal zu deaktivieren.
  • Bitten Sie den Benutzer, die "READ_CONTACTS" Berechtigung zu erteilen.

Überprüfen der Brokerintegration

Möglicherweise ist nicht sofort klar, dass die Brokerintegration funktioniert, Sie können jedoch die folgenden Schritte zum Überprüfen verwenden:

  1. Füllen Sie auf Ihrem Android-Gerät eine Anforderung mit dem Broker aus.
  2. Suchen Sie in den Einstellungen auf Ihrem Android-Gerät nach einem neu erstellten Konto, das dem Konto entspricht, mit dem Sie sich authentifiziert haben. Das Konto sollte vom Typ "Geschäftskonto" sein.

Sie können das Konto aus den Einstellungen entfernen, wenn Sie den Test wiederholen möchten.

SSO über Systembrowser

Android-Anwendungen können für die Benutzerauthentifizierung den WEBVIEW, den Systembrowser oder Chrome Custom Tabs verwenden. Wenn die Anwendung keine vermittelte Authentifizierung verwendet, muss sie den Systembrowser anstelle der nativen Webview verwenden, um SSO zu erreichen.

Autorisierungs-Agents

Die Auswahl einer bestimmten Strategie für Autorisierungs-Agents ist wichtig und stellt zusätzliche Funktionen dar, die Apps anpassen können. Es wird die Verwendung von „WEBVIEW“ empfohlen. Weitere Informationen zu anderen Konfigurationswerten finden Sie unter "Grundlegendes zur MSAL-Konfigurationsdatei für Android".

MSAL unterstützt die Autorisierung mithilfe eines WEBVIEW oder des Systembrowsers. Das folgende Bild zeigt, wie es bei Verwendung von WEBVIEW oder des Systembrowsers mit oder ohne CustomTabs aussieht:

MSAL-Anmeldebeispiele

SSO-Auswirkungen

Wenn die Anwendung eine WEBVIEW-Strategie verwendet, ohne vermittelte Authentifizierung in ihre App zu integrieren, haben Benutzer weder geräteweit noch zwischen nativen Apps und Web-Apps ein Single Sign-On.

Anwendungen können in MSAL integriert werden, um die BROWSER Autorisierung zu verwenden. Im Gegensatz zu WEBVIEW nutzen BROWSER denselben Cookie-Speicher wie der Standardsystembrowser, wodurch bei Web- oder anderen nativen Apps, die Custom Tabs integriert haben, weniger Anmeldungen erforderlich sind.

Wenn die Anwendung MSAL mit einem Broker wie Microsoft Authenticator, Intune Unternehmensportal oder Link zu Windows verwendet, können Benutzer SSO-Erfahrung in allen Anwendungen haben, wenn sie über eine aktive Anmeldung mit einer der Apps verfügen.

Note

MSAL mit Broker verwendet WebView und stellt SSO für alle Anwendungen bereit, die MSAL-Bibliothek verwenden und an einer vermittelten Authentifizierung teilnehmen. Der SSO-Status vom Broker wird nicht auf andere Apps erweitert, die MSAL nicht verwenden.

Webansicht

Wenn Sie das In-App-WebView verwenden möchten, fügen Sie die folgende Zeile in den JSON-Code der App-Konfiguration ein, der an MSAL übergeben wird:

"authorization_user_agent" : "WEBVIEW"

Bei Verwendung der In-App WEBVIEWmeldet sich der Benutzer direkt bei der App an. Die Token werden innerhalb der Sandbox der App gespeichert und sind außerhalb des Cookie-Speichers der App nicht verfügbar. Daher steht dem Benutzer keine anwendungsübergreifende SSO-Funktion zur Verfügung, es sei denn, die Apps sind in die Microsoft Authenticator-App, die Intune-Unternehmensportal-App oder Link zu Windows integriert.

WEBVIEW bietet jedoch die Möglichkeit, das Erscheinungsbild der Anmeldebenutzeroberfläche anzupassen. Weitere Informationen zu dieser Anpassung finden Sie unter Android WebViews .

Browser

Wir empfehlen die Verwendung von WEBVIEW, obwohl wir die Möglichkeit bieten, Browser und eine benutzerdefinierte Registerkartenstrategie zu verwenden. Sie können diese Strategie explizit angeben, indem Sie die folgende JSON-Konfiguration in der benutzerdefinierten Konfigurationsdatei verwenden:

"authorization_user_agent" : "BROWSER"

Verwenden Sie diesen Ansatz, um SSO-Erfahrung über den Browser des Geräts bereitzustellen. MSAL verwendet einen freigegebenen Cookiebehälter, wodurch andere native Apps oder Web-Apps mithilfe des von MSAL festgelegten persistenten Sitzungscookies SSO auf dem Gerät erreichen.

Heuristik der Browserauswahl

Da es für MSAL unmöglich ist, das genaue Browserpaket anzugeben, das auf jedem der breiten Arrays von Android-Smartphones verwendet werden soll, implementiert MSAL eine Heuristik für die Browserauswahl, die versucht, das beste geräteübergreifende SSO bereitzustellen.

MSAL ruft in erster Linie den Standardbrowser aus dem Paket-Manager ab und überprüft, ob er in einer getesteten Liste sicherer Browser enthalten ist. Andernfalls greift MSAL auf die Verwendung der Webview zurück, anstatt einen anderen nicht standardmäßigen Browser aus der sicheren Liste zu starten. Der Standardbrowser wird unabhängig davon ausgewählt, ob er benutzerdefinierte Registerkarten unterstützt. Wenn der Browser benutzerdefinierte Registerkarten unterstützt, startet MSAL die benutzerdefinierte Registerkarte. Benutzerdefinierte Registerkarten haben ein Aussehen und Verhalten näher an einer In-App WebView und ermöglichen grundlegende UI-Anpassungen. Weitere Informationen finden Sie unter "Benutzerdefinierte Registerkarten" in Android .

Wenn auf dem Gerät keine Browserpakete vorhanden sind, verwendet MSAL die In-App WebView. Wenn die Standardeinstellung des Geräts nicht geändert wird, sollte derselbe Browser für jede Anmeldung gestartet werden, um die SSO-Erfahrung sicherzustellen.

Getestete Browser

Die folgenden Browser wurden daraufhin getestet, ob sie korrekt zu der in der Konfigurationsdatei angegebenen "redirect_uri" weiterleiten:

Gerät Integrierter Browser Chrom Opera Microsoft Edge UC-Browser Firefox
Nexus 4 (API 17) erfolgreich erfolgreich nicht anwendbar nicht anwendbar nicht anwendbar nicht anwendbar
Samsung S7 (API 25) erfolgreich1 erfolgreich erfolgreich erfolgreich fehlschlagen erfolgreich
Vivo (API 26) erfolgreich erfolgreich erfolgreich erfolgreich erfolgreich fehlschlagen
Pixel 2 (API 26) erfolgreich erfolgreich erfolgreich erfolgreich fehlschlagen erfolgreich
Oppo erfolgreich nicht anwendbar2 nicht anwendbar nicht anwendbar nicht anwendbar nicht anwendbar
OnePlus (API 25) erfolgreich erfolgreich erfolgreich erfolgreich fehlschlagen erfolgreich
Nexus (API 28) erfolgreich erfolgreich erfolgreich erfolgreich fehlschlagen erfolgreich
MI erfolgreich erfolgreich erfolgreich erfolgreich fehlschlagen erfolgreich

1Samsungs integrierter Browser ist Samsung Internet.
2Der Standardbrowser kann nicht innerhalb der Einstellung des Oppo-Geräts geändert werden.

Nächste Schritte

Mit dem Modus für gemeinsam genutzte Geräte für Android-Geräte können Sie ein Android-Gerät so konfigurieren, dass es problemlos von mehreren Mitarbeitern geteilt werden kann.

Weitere Informationen zu Brokeranwendungen finden Sie unter: