Zugriffstoken enthalten nicht den Zugang für API mit MSAL

stimmen
1

Ich verwende MSAL für JavaScript in reagieren App gegen Azure AD zu authentifizieren. Ich bin in der Lage, erfolgreich Benutzer zu authentifizieren und ID - Token und Zugriffstoken zu erhalten. Aber die Zugriffstoken abgerufen wird, kann nicht auf die API zugreifen , die mit Azure AD gesichert ist.

Alles ist so konfiguriert, findet auf Seite Azure AD, wie ich das abgerufene Zugriffstoken verwenden kann, um die API zu sprechen mit einem Dotnet Kern Web-App.

Der Unterschied zwischen dotnet Kern app und reagieren app die „resource“ -Attribut ist. Ich bin nicht sicher, wie das mit MSAL in der Anforderung enthalten.

Mein Reagieren Code:

userAgentApplication = new UserAgentApplication(
    <clientid>,
    <azureAdUrl>,
    this.authCallback,
    { redirectUri: http://localhost:3000/, cacheLocation: localStorage }
  );

  authCallback(errorDesc, token, error, tokenType) {
    if (token) console.log(token);
  }


login() {
    this.userAgentApplication.loginRedirect().then(function(idToken) {

      this.userAgentApplication.acquireTokenSilent().then(
        function(accessToken) {
          console.log('Access Token: ' + accessToken);
        }
      );
    });
  }

Mit einem Dotnet Kern App verwende ich gleiche Konfigurationen wie sowohl URL konfigurierte in Azure AD App mit einer Ergänzung.

.AddOpenIdConnect(o =>
                {
                    ....
                    o.Resource = GUID of the API;
                });

Ich sende nicht diese Ressource Parameter mit MSAL.Not sicher, wie das senden und wenn das das ist das Problem.

Jede Hilfe ist willkommen.

Veröffentlicht am 07/11/2018 um 23:46
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

MSAL verwendet den Begriff der Bereiche , keine Ressourcen. Mein Eindruck Ihre Frage zu lesen ist , dass dies ein v1 Web API (registriert mit der App Registrierung Klinge in dem Azure - Portal ? Wenn das der Fall ist der Spielraum für Ihre Ressource ist wahrscheinlich o.Resource + „/ user_impersonation“

wenn es eine v2.0 API (registriert ist apps.dev.microsoft.com ) oder das Azure - Portal aber mit der neuen Anwendung Anmeldung (Vorschau), dann ist der Umfang bei der Registrierung zur Verfügung gestellt

Für eine ASP.NET - Core - Anwendung möchten Sie vielleicht einen Blick auf die folgende Probe haben: https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2 und wahrscheinlich diesen Zweig aspnetcore2-2 -signInAndCallGraph

Beantwortet am 08/11/2018 um 00:42
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more