Токен доступа не включает доступ для API с MSAL - PullRequest
0 голосов
/ 08 ноября 2018

Я использую MSAL для JavaScript в приложении реагирования для аутентификации в Azure AD. Я могу успешно аутентифицировать пользователя, получить идентификатор токена и токен доступа. Но полученный токен доступа не может получить доступ к API, защищенному с помощью Azure AD.

Все настроено найти на стороне Azure AD, так как я могу использовать полученный токен доступа для связи с API с помощью основного веб-приложения dotnet.

Разница между основным приложением dotnet и реагирующим приложением заключается в атрибуте "ресурс". Я не уверен, как включить это в запрос с MSAL.

Мой код реакции:

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);
        }
      );
    });
  }

В основном приложении dotnet я использую те же конфигурации, что и оба URL-адреса, настроенные в приложении Azure AD, с одним добавлением.

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

Я не отправляю этот параметр ресурса с помощью MSAL. Не знаю, как отправить это, и если это проблема.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 ноября 2018

MSAL использует понятие областей , а не ресурсов.Когда я читаю ваш вопрос, у меня сложилось впечатление, что это веб-API v1 (зарегистрированный в блейде регистрации приложений на портале Azure ?)1005 *

, если это API v2.0 (зарегистрирован на apps.dev.microsoft.com ) или портал Azure, но с регистрацией нового приложения (предварительный просмотр), то область предоставляется при регистрации

Для приложения ASP.NET Core вы, возможно, захотите взглянуть на следующий пример: https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2, и, возможно, эта ветвь aspnetcore2-2-signInAndCallGraph

...