2017-08-08 1 views
1

Wie kann ich MSAL für den Zugriff auf Microsoft Graph mit Azure AD mit impliziter Erteilung verwenden?Verwenden von MSAL für den Zugriff auf Azure AC mit impliziter Erteilung

Ich habe Azure registrierte Anwendung mit oauth2AllowImplicitFlow aktiviert und ich versuche, userAgentApplication.acquireTokenSilent aufrufen, aber ich bekomme immer einen Fehler "Benutzeranmeldung ist erforderlich".

Ich rufe es von Sharepoint Online-App, also bin ich bereits in 365 Dienste angemeldet.

Gibt es ein Beispiel für ein solches Szenario?

Antwort

0

Here ist ein Beispiel für die Verwendung von MSAL mit Azure AD zum Aufrufen von Microsoft Graph (einschließlich Sharepoint, Exchange und mehreren anderen Arbeitsauslastungen). Um zu überprüfen, wie Sie dies tun, überprüfen Sie die MS Graph Docs.

Der Fehler, den Sie erhalten, wird durch Verwendung von acquireTokenSilent ohne einen angemeldeten Benutzer verursacht. MSAL hat zwei Hauptfunktionen: acquireTokenSilent und acquireToken. Bei der ersten handelt es sich um eine garantierte stille Anforderung (dem Benutzer wird niemals eine Anmeldeseite angezeigt), und es schlägt fehl, wenn dies nicht erfolgreich durchgeführt werden kann. Letzteres wird immer eine Anmeldeseite anzeigen, um neue Tokens für einen Benutzer zu erhalten.

Das empfohlene Muster besteht darin, einen Funktionsaufruf acquireTokenSilent zu versuchen, und dann bei einem Fehlerversuch einen acquireToken. Dadurch werden unnötige Anmeldungen vermieden, aber Ihre App wird auch nicht in einen Zustand versetzt, in dem sie keine authentifizierten Vorgänge ausführen kann.

+0

Ich habe vergessen hinzuzufügen, da Sie MSAL verwenden, was bedeutet, dass Sie den Azure AD v2 Endpunkt treffen. Stellen Sie sicher, dass Ihre App im [App Reg Portal] (https://apps.dev.microsoft.com) und nicht im Azure Portal registriert ist. Sie müssen auch 'oauth2AllowImplicitFlow' hier auf' true 'setzen. –

Verwandte Themen