Häufig gestellte Fragen

MSAL4J-Bereich

Was ist die Hauptfunktionalität von MSAL?

Abrufen von Token von einem Sicherheitstokendienst (Security Token Service, STS) für eine Clientanwendung für den Zugriff auf eine geschützte Ressource.

Was ist MSAL4J?

MSAL ist für viele Programmiersprachen und Plattformen verfügbar. MSAL4J wurde für jede Anwendung entwickelt, die auf dem virtuellen computer Java ausgeführt wird.

Welche Standardprotokolle folgt MSAL für die Tokenakquise?

MSAL implementiert eine benutzerdefinierte Version des OAuth2-Protokolls. Für bestimmte Szenarien kann es auch intern andere Protokolle (z. B. WS-Trust) verwenden.

Ist MSAL eine allgemeine Bibliothek für die Tokenakquisition mit dem OAuth2-Protokoll?

No. MSAL ist eine Clientbibliothek für Microsoft Entra ID, Active Directory-Verbunddienste (AD FS) (ADFS) und Azure Active Directory B2C. Es gibt einige benutzerdefinierte Begriffe wie "Ressource", die von ADAL benötigt werden, die als Erweiterungen für die allgemeine OAuth2-Protokollspezifikation gelten und von anderen STS nicht unterstützt werden.

API-Hochlauf

Soll ich die Autoritätsvalidierung deaktivieren, indem ich dem Konstruktor „false“ übergebe?

Es hängt davon ab, mit welcher Art von Autorität Sie sprechen. Wenn es sich um ADFS handelt, müssen Sie "false" übergeben, da ADFS derzeit keine Autoritätsüberprüfung unterstützt. Wenn es sich um Microsoft Entra ID handelt, können Sie weiterhin false übergeben, es wird jedoch empfohlen, true zu verwenden, insbesondere wenn Sie die Adresse der Autorität von einem Drittanbieter erhalten (z. B. über eine 401-Challenge). Dies ist das Schützen von Anwendungen und Benutzern vor der Umleitung zu schädlichen Endpunkten, um ihre Anmeldeinformationen einzugeben.

Welche Überladung von AcquireToken sollte ich aufrufen?

Dies hängt vom Typ der verwendeten Clientanwendung und dem Szenario ab, für das Sie ein Token benötigen. Weitere Informationen finden Sie in den Anleitungen unter "Token erwerben".

Debugging

Was sind die häufigsten Gründe für fehler bei der Verwendung von MSAL?

Probleme in MSAL könnten verschiedene Gründe haben. Dies sind die häufigsten Schuldigen:

  1. Ihr Computer hat Verbindungsprobleme.
  2. Ihre Anwendungen/Benutzer sind auf Microsoft Entra ID oder ADFS nicht ordnungsgemäß konfiguriert.
  3. Sie verwenden eine falsche API für Ihre Aufgabe (MSAL verfügt über mehrere ähnliche Überladungen für die Methode AcquireToken).
  4. Es gibt einen Fehler in MSAL! Ja, das ist immer möglich. Wenn Sie sicher sind, dass keiner der oben genannten Elemente der Grund für den Fehler ist, melden Sie es uns, und wir werden den Fehler untersuchen und beheben, falls vorhanden.

Welche Tools kann ich für die Diagnose eines Problems in ADAL verwenden?

Es gibt mehrere Diagnosetools, die Sie verwenden können:

  1. MSAL-Beispiele: Das beste erste Hilfsmittel ist die Sammlung von Beispielen, die zusammen mit MSAL veröffentlicht wurde (im Repository der Bibliothek sowie Beispiele, die in der AzureSamples GitHub-Organisation verfügbar sind). Versuchen Sie, das nächstgelegene Beispiel für Ihre Anwendung zu finden, und laden Sie es auf Ihrem Computer herunter und führen Sie es aus. Wenn das Beispiel ordnungsgemäß funktioniert, müssen Sie die gleichen Schritte der Beispiel-App in Ihrer Anwendung ausführen.
  2. MSAL-Diagnoseprotokolle: Sie können die Protokollierung aktivieren. Dadurch werden einige Protokolle mit Informationen zu den internen Schritten von MSAL geschrieben. Sie können die Protokolle analysieren, um das Problem zu finden. Falls Sie sich mit dem MSAL-Team in Verbindung setzen, müssen Sie die Protokolle auch zur Unterstützung der Analyse senden. Die Anleitung zum Aktivieren von MSAL-Protokollen finden Sie in der offiziellen Dokumentation.
  3. Netzwerkablaufverfolgungen: Verwenden Sie ein Tool wie Fiddler zum Aufzeichnen aller HTTP-Kommunikations-MSAL-Vorgänge mit dem Server. Die Verwendung von Fiddler ist besonders einfach auf Windows Desktopcomputern. Bitte stellen Sie dem MSAL-Team die Netzwerkablaufverfolgungsdatei zur Verfügung, falls wir an der Diagnose Ihres Problems beteiligt sein sollten.

Welche Art von Fehlern wird von MSAL als Ausnahme zurückgegeben und welche Art wird dem Benutzer gemeldet?

Die meisten Fehler werden in Form einer Ausnahme von MSAL zurückgegeben; Es gibt jedoch begrenzte Fälle, in denen MSAL den Fehler im Browsersteuerelement anzeigt. Diese Fälle treten meist auf, wenn der Client nicht überprüft werden kann oder der Autoritätsserver nicht erreicht werden kann.

Hat MSAL irgendeine Art von Wiederholungslogik innerhalb?

No. Wenn ein Vorgang fehlschlägt, meldet MSAL einen Fehler durch eine Ausnahme. Die Ausnahme enthält einen Fehlercode und auch einen Statuscode, falls der Fehler von der Autorität zurückgegeben wird. In solchen Fällen ist es aufgabe des Entwicklers, den Statuscode (der hauptsächlich den HTTP-Statuscode der Antwort widerspiegelt) in der Ausnahme zu untersuchen und entscheidet, ob der Vorgang wiederholt werden soll. 502 ist in der Regel der Statuscode, bei dem ein erneuter Versuch angebracht ist.

MSAL-Veröffentlichungsmodell

Wie oft veröffentlicht MSAL eine neue Version?

Es gibt keinen vordefinierten Zeitplan. Wir versuchen, Wartungsversionen sehr regelmäßig zu veröffentlichen, um Fehler zu beheben und Kunden zu entsperren. Hauptversionen dauern in der Regel länger, und wir veröffentlichen mehrere Vorschauversionen vor der allgemeinen Verfügbarkeit einer Hauptversion.

Was ist das Kompatibilitätsmodell von MSAL-Versionen?

Ziel ist es, die Abwärtskompatibilität innerhalb einer Hauptversion aufrechtzuerhalten. Dazu versuchen wir, nur Fehler zu beheben oder neue Features in Wartungsversionen hinzuzufügen (wodurch die Nebenversion erhöht wird). Es gibt jedoch keine Kompatibilitätsgarantie zwischen Hauptversionen. Wir können Unterstützung für bestimmte Plattformen oder Szenarien hinzufügen oder entfernen. Daher wird empfohlen, den Umfang der Änderungen vollständig zu verstehen und die neue Version vollständig zu testen, bevor Sie in Ihren Produktionscode wechseln.