Aktivieren von App-übergreifendem SSO auf Android mit MSAL

Das einmalige Anmelden (Single Sign-On, SSO) ermöglicht es benutzenden Personen, ihre Anmeldeinformationen nur einmal einzugeben und diese automatisch anwendungsübergreifend zu verwenden. Es verbessert die Benutzerfreundlichkeit und erhöht die Sicherheit, indem es die Anzahl der Kennwörter, die die benutzenden Personen verwalten müssen, reduziert und damit das Risiko von Kennwortmüdigkeit und damit verbundenen Schwachstellen verringert.

Die Microsoft Identity Platform und die Microsoft Authentication Library (MSAL) ermöglichen es Ihnen, einmaliges Anmelden in Ihren Apps zu aktivieren. Durch die Aktivierung der Broker-Funktion können Sie das einmalige Anmelden auf das gesamte Gerät ausweiten.

In dieser Anleitung erfahren Sie, wie Sie die SDKs für Ihre Anwendung konfigurieren, damit Ihre Kunden von einmaligem Anmelden profitieren können.

Voraussetzungen

In dieser Anleitung wird davon ausgegangen, dass Sie mit folgenden Schritten vertraut sind:

  • Stellen Sie Ihre App bereit. Weitere Informationen finden Sie in den Anweisungen zum Erstellen einer App im Android-Tutorial.
  • Integrieren Ihrer Anwendung in MSAL für Android

Methoden für einmaliges Anmelden (SSO)

Es gibt zwei Möglichkeiten, mit MSAL einmaliges Anmelden in Anwendungen unter Android zu unterstützen:

  • Über eine Brokeranwendung

  • Über den Systembrowser

    Es wird empfohlen, eine Brokeranwendung zu verwenden, die Vorteile wie geräteweites einmaliges Anmelden, Kontoverwaltung und bedingten Zugriff bietet. Hierzu müssen die Benutzer allerdings zusätzliche Anwendungen herunterladen.

Einmaliges Anmelden über Brokerauthentifizierung

Wir empfehlen, einen der Authentifizierungsbroker von Microsoft zu verwenden, um am geräteweiten einmaligen Anmelden (Single Sign-On, SSO) teilnehmen und die Organisationsrichtlinien für bedingten Zugriff erfüllen zu können. Die Integration eines Brokers bietet die folgenden Vorteile:

  • Einmaliges Anmelden für Geräte
  • Bedingter Zugriff für:
    • Intune-App-Schutz
    • Geräteregistrierung (Workplace Join)
    • Verwaltung mobiler Geräte
  • Geräteweite Kontenverwaltung
    • über Android-AccountManager und Kontoeinstellungen
    • „Geschäftskonto“ – benutzerdefinierter Kontotyp

Unter Android ist der Microsoft-Authentifizierungsbroker eine Komponente, die in der Microsoft Authenticator-, Intune-Unternehmensportal und Link zu Windows-App enthalten ist.

Im folgenden Diagramm wird die Beziehung zwischen Ihrer App, der Microsoft Authentication Library (MSAL) und den Authentifizierungsbrokern von Microsoft veranschaulicht.

Diagramm der Beziehungen einer Anwendung zu MSAL, Broker-Apps und Android Account Manager.

Installieren von Apps, die einen Broker hosten

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

  • Registriert (in den Arbeitsplatz eingebunden) sind und/oder
  • Bei der Geräteverwaltung registriert sind oder
  • Bei Intune-App-Schutz registriert sind

Wenn auf dem Gerät mit den oben genannten Anforderungen noch keine Broker-App installiert ist, weist MSAL den Benutzer an, eine zu installieren, sobald die App versucht, ein Token interaktiv abzurufen. Anschließend führt die App die benutzende Person durch die entsprechenden Schritte, um sicherzustellen, dass das Gerät der erforderlichen Richtlinie entspricht. Wenn es keine Richtlinienanforderung gibt oder die benutzende Person sich mit einem Microsoft-Konto anmeldet, ist die Installation der Broker-App nicht erforderlich.

Auswirkungen der Installation und Deinstallation eines Brokers

Installation eines Brokers

Wenn ein Broker auf einem Gerät installiert ist, werden alle nachfolgenden interaktiven Tokenanforderungen (Aufrufe von acquireToken()) vom Broker und nicht lokal von MSAL verarbeitet. Ein zuvor für MSAL verfügbarer SSO-Zustand steht dem Broker nicht zur Verfügung. Folglich muss sich der Benutzer erneut authentifizieren oder ein Konto aus der vorhandenen Liste der dem Gerät bekannten Konten auswählen.

Die Installation eines Brokers erfordert keine erneute Anmeldung des Benutzers. Nur wenn der Benutzer eine MsalUiRequiredException auflösen muss, wird die nächste Anforderung an den Broker weitergeleitet. MsalUiRequiredException kann aus verschiedenen Gründen ausgelöst werden und muss interaktiv aufgelöst werden. Zum Beispiel:

  • Der Benutzer hat das dem Konto zugewiesene Kennwort geändert.
  • Das Konto des Benutzers erfüllt keine Richtlinie für bedingten Zugriff mehr.
  • Der Benutzer hat seine Zustimmung zur Verknüpfung der App mit seinem Konto widerrufen.

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

Deinstallation eines Brokers

Wenn nur eine Brokerhosting-App installiert ist und diese entfernt wird, muss sich der Benutzer erneut anmelden. Bei der Deinstallation des aktiven Brokers werden das Konto und die zugeordneten Token vom Gerät entfernt.

Wenn Microsoft Authenticator, das Intune-Intune-Unternehmensportal oder Link zu Windows deinstalliert wird, wird die benutzende Person möglicherweise aufgefordert, sich erneut anzumelden.

Integration eines Brokers

Generieren eines Umleitungs-URI für einen Broker

Tipp

Die Schritte in diesem Artikel können je nach dem Portal, mit dem Sie beginnen, geringfügig variieren.

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

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

Sie können keytool verwenden, um einen Base64-codierten Signaturhash mithilfe der Signaturschlüssel Ihrer App zu generieren. Generieren Sie dann den Umleitungs-URI mit diesem Hash.

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

Nachdem Sie einen Signaturhash mit keytool generiert haben, generieren Sie den Umleitungs-URI im Azure-Portal:

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

Die Umleitungs-URI wird für Sie generiert und im Bereich Android-Konfiguration im Feld Umleitungs-URI angezeigt.

Weitere Informationen zum Signieren Ihrer App finden Sie unter Sign your app (Signieren Ihrer App) im Android Studio User Guide.

Konfigurieren von MSAL für die Verwendung eines Brokers

Wenn Sie einen Broker in Ihrer App verwenden möchten, müssen Sie nachweisen, dass Sie Ihre Brokerumleitung konfiguriert haben. Fügen Sie beispielsweise Ihren brokeraktivierten Umleitungs-URI ein, und geben Sie an, dass Sie ihn registriert haben, indem Sie folgende Einstellungen in Ihre MSAL-Konfigurationsdatei einfügen:

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

MSAL kommuniziert mit dem Broker auf zwei Arten:

  • Brokergebundener Dienst
  • Android-AccountManager

MSAL verwendet zuerst den brokergebundenen Dienst, weil für das Aufrufen dieses Diensts keine Android-Berechtigungen erforderlich sind. Wenn die Bindung an den gebundenen Dienst fehlschlägt, verwendet MSAL die Android-AccountManager-API. MSAL geht so nur vor, wenn Ihrer App bereits die Berechtigung "READ_CONTACTS" erteilt wurde.

Wenn Sie eine MsalClientException mit dem Fehlercode "BROKER_BIND_FAILURE" erhalten, haben Sie zwei Möglichkeiten:

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

Überprüfen der Brokerintegration

Möglicherweise ist nicht sofort klar, dass die Brokerintegration funktioniert, aber Sie können die folgenden Schritte ausführen, um dies zu überprüfen:

  1. Vervollständigen Sie auf Ihrem Android-Gerät eine Anforderung mit dem Broker.
  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 muss vom Typ Geschäftskonto sein.

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

Einmaliges Anmelden über den Systembrowser

Android-Anwendungen haben die Möglichkeit, den WEBVIEW, den Systembrowser oder Chrome Custom Tabs für die Authentifizierung der Benutzenden zu verwenden. Wenn die Anwendung keine Brokerauthentifizierung verwendet, muss sie anstelle der nativen Webansicht den Systembrowser verwenden, um einmaliges Anmelden umzusetzen.

Autorisierungs-Agents

Die Wahl einer bestimmten Strategie für Autorisierungsagenten ist wichtig und stellt eine zusätzliche Funktionalität dar, die von Anwendungen angepasst werden kann. Es wird die Verwendung von „WEBVIEW“ empfohlen. Weitere Informationen zu anderen Konfigurationswerten (siehe Grundlegendes zur Android MSAL-Konfigurationsdatei.

MSAL unterstützt die Autorisierung mithilfe einer WEBVIEW oder des Systembrowsers. In der folgenden Abbildung sind Autorisierungen mithilfe der WEBVIEW und des Systembrowsers mit bzw. ohne benutzerdefinierte Registerkarten dargestellt:

MSAL-Anmeldebeispiele

Auswirkungen des einmaligen Anmeldens

Wenn die Anwendung eine WEBVIEW-Strategie verwendet, bei der die Brokerauthentifizierung nicht in die App integriert wird, haben die Benutzenden keine einmalige Anmeldeerfahrung auf dem Gerät oder zwischen nativen Apps und Webanwendungen.

Anwendungen können mit MSAL integriert werden, um die BROWSER-Autorisierung zu verwenden. Im Gegensatz zu WEBVIEW teilt sich BROWSER ein Cookie-Gefäß mit dem Standardsystembrowser, sodass weniger Anmeldungen bei Web- oder anderen nativen Anwendungen erforderlich sind, die in/mit Custom Tabs integriert wurden.

Wenn die Anwendung MSAL mit einem Broker wie Microsoft Authenticator, dem Intune-Unternehmensportal oder Link zu Windows verwendet, können die Benutzer eine gemeinsame Oberfläche für einmaliges Anmelden in allen Anwendungen nutzen, sofern eine aktive Benutzeranmeldung bei einer der Apps besteht.

Hinweis

MSAL mit Broker verwendet WebView und stellt Einmaliges Anmelden (Single Sign-On, SSO) für alle Anwendungen bereit, die MSAL-Bibliothek verwenden und an einer Brokerauthentifizierung teilnehmen. Der SSO-Status vom Broker wird nicht auf andere Anwendungen erweitert, die MSAL nicht verwenden.

WebView

Wenn Sie die In-App-WebView verwenden möchten, fügen Sie in die an MSAL übermittelte JSON-App-Konfigurationsdatei die folgende Zeile ein:

"authorization_user_agent" : "WEBVIEW"

Bei Verwendung der In-App-WEBVIEW meldet sich der Benutzer direkt bei der App an. Die Token werden in der Sandbox der App gespeichert und sind außerhalb des Cookiebehälters der App nicht verfügbar. Folglich steht dem Benutzer eine anwendungsübergreifende SSO-Funktion nur dann zur Verfügung, wenn die Apps in die Microsoft Authenticator-App, das Intune-Unternehmensportal oder den Link zu Windows integriert sind.

WEBVIEW bietet jedoch die Möglichkeit, das Aussehen und Verhalten der Benutzeroberfläche für die Anmeldung anzupassen. Weitere Informationen dazu, wie Sie diese Anpassung vornehmen, finden Sie unter Android-WebViews.

Browser

Wir empfehlen die Verwendung von WEBVIEW, obwohl wir die Möglichkeit bieten, Browser und eine benutzerdefinierte Registerkarten-Strategie 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-Funktionalität ü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.

Browserauswahlheuristik

Da MSAL unmöglich das genaue Browserpaket angeben kann, das auf den vielen verschiedenen Android-Smartphones verwendet werden soll, implementiert MSAL eine Browserauswahlheuristik, die versucht, das beste geräteübergreifende SSO bereitzustellen.

MSAL ruft den Standardbrowser in erster Linie aus dem Paket-Manager ab und überprüft, ob dieser in einer getesteten Liste sicherer Browser aufgeführt ist. Wenn dies nicht der Fall ist, greift die MSAL auf die Webansicht 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 entsprechen in Aussehen und Verhalten eher einer In-App-WebView und ermöglichen eine grundlegende Anpassung der Benutzeroberfläche. Weitere Informationen finden Sie unter Benutzerdefinierte Registerkarten unter 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 für jede Anmeldung der gleiche Browser gestartet werden, um SSO-Funktionalität zu gewährleisten.

Getestete Browser

Die folgenden Browser wurden getestet, um zu prüfen, ob eine korrekte Umleitung zu dem in der Konfigurationsdatei angegebenen "redirect_uri" erfolgt:

Sicherungsmedium Integrierter Browser Chrome Opera Microsoft Edge UC Browser Firefox
Nexus 4 (API 17) erfolgreich erfolgreich nicht zutreffend nicht zutreffend nicht zutreffend nicht zutreffend
Samsung S7 (API 25) erfolgreich1 erfolgreich erfolgreich erfolgreich fehlerhaft pass
Vivo (API 26) erfolgreich erfolgreich erfolgreich erfolgreich erfolgreich fehlerhaft
Pixel 2 (API 26) erfolgreich erfolgreich erfolgreich erfolgreich fehlerhaft erfolgreich
Oppo pass nicht zutreffend2 nicht zutreffend nicht zutreffend nicht zutreffend nicht zutreffend
OnePlus (API 25) erfolgreich erfolgreich erfolgreich erfolgreich fehlerhaft erfolgreich
Nexus (API 28) erfolgreich erfolgreich erfolgreich erfolgreich fehlerhaft erfolgreich
MI erfolgreich erfolgreich erfolgreich erfolgreich fehlerhaft erfolgreich

1Der auf Samsung-Geräten integrierte Browser ist Samsung Internet.
2 Der Standardbrowser kann nicht in der Oppo-Geräteeinstellung geändert werden.

Nächste Schritte

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

Weitere Informationen zu Brokeranwendungen finden Sie auf den folgenden Seiten: