MSAL Android – Häufig gestellte Fragen

Umleitungs-URI-Probleme

MSAL ist standardmäßig für die Verwendung der brokerierten Authentifizierung konfiguriert. Damit dies funktioniert, müssen Sie einen Umleitungs-URI mithilfe der Signaturschlüssel erstellen, die Ihrer Anwendung zugeordnet sind. Dann muss Der Umleitungs-URI sowohl in der Anwendungskonfigurationsdatei als auch im Android-Manifest enthalten sein. Leider ist für jeden eine andere Codierung erforderlich. Lassen Sie uns eine kurze Einführung machen:

  1. Als Erstes müssen Sie ihre Signaturschlüssel für Ihre Anwendung finden. Normalerweise befinden sich Die Debugschlüssel in Ihrem Startordner unter einem ausgeblendeten Ordner namens ".android" in einem Java-Keystore namens "debug.keystore". Das Azure-Portal bietet hilfreiche Befehle zum Generieren der Signatur Ihrer Anwendung wie folgt:
  • 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

WARNUNG: Das Umleiten der Ein-/Ausgabe eines Befehls ist praktisch, kann jedoch Fehler verbergen. Wenn die Keystoredatei nicht gefunden wird, z. B. wird die Fehlermeldung an "openssl" weitergeleitet, und der vollständige Befehl führt weiterhin zu einem Ergebnis, das wie erwartet aussieht. Führen Sie den ersten Befehl im Zweifelsfall separat aus, um sicherzustellen, dass er funktioniert.

WARNUNG: Sie werden aufgefordert, das Kennwort für Ihren Keystore anzugeben. Das Debug-Keystore-Kennwort ist einfach "android". Wenn Sie nicht zur Eingabe eines Kennworts aufgefordert wurden, besteht die Möglichkeit, dass Sie die Teile des obigen Befehls separat ausführen müssen, um sicherzustellen, dass die Keystoredatei gefunden wurde.

WARNUNG: Wenn sich Ihre Keystoredatei an einem anderen Speicherort befindet, sollten Sie (Windows) oder %HOMEPATH%\.android\debug.keystore (MacOS) durch den Pfad zu Ihrer Keystoredatei ersetzen ~/.android/debug.keystore .

  1. Sobald Sie ihre base64-codierte Signatur haben. Sie können ihn verwenden, um einen Absichtsfilter für Ihre Anwendung zu konfigurieren, damit Browser Autorisierungscodes ordnungsgemäß an Ihre Anwendung zurückgeben können. Damit Ihr Intent-Filter auf einem Gerät eindeutig ist, sind zusätzlich zu Ihrer Anwendungssignatur ein benutzerdefiniertes Schema „msauth“ und Ihr Paketname enthalten. Im Folgenden finden Sie ein Beispiel:
//NOTE: the slash before your signature value added to the path attribute
//This uses the base64 encoded signature produced above.
<data android:scheme="msauth"
                    android:host="com.microsoft.identity.client.sample.local"
                    android:path="/1wIqXSqBj7w+h11ZifsnqwgyKrY="/>
  1. Ihre MSAL-Konfigurationsdatei erfordert etwas leicht anderes. Es ist erforderlich, dass der Signaturwert zusätzlich zur bereits erfolgten Base64-Kodierung URL-kodiert wird. Hier ist ein Beispiel:
//NOTE that the signature part of the uri has been url encoded.  In this example.  The "+" character and the "=" character are affected.
"redirect_uri" : "msauth://com.microsoft.identity.client.sample.local/1wIqXSqBj7w%2Bh11ZifsnqwgyKrY%3D",

Anzeigen der Umleitungs-URI-Konfiguration Ihrer assemblierten App

Um Sie bei der Erstellung (oder Fehlerbehebung) Ihrer App-Registrierung zu unterstützen, haben wir zu PublicClientApplication eine Hilfsfunktion hinzugefügt, mit der Sie Probleme mit Ihrer Umleitungs-URI sowie mit Weiterleitungen zu Activity konfigurieren und diagnostizieren können.

Ab MSAL 2.0.0 können Sie die folgende Methode aufrufen, um die vorgeschlagene Konfiguration Ihrer Anwendung auszugeben.

// From any Activity in your app, call this static method
PublicClientApplication.showExpectedMsalRedirectUriInfo(MyActivity.this);

MSAL-Umleitungs-URI-Informationen