Попытка реализовать единый вход с Azure активным каталогом и аутентификацию API с помощью Azure / MSAL - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь реализовать единый вход с Azure Аутентификация Active Directory и API с использованием Azure AD / MSAL, но сталкиваюсь с проблемами, описанными ниже.

  1. После аутентификации * Создается 1005 *, и оно сохраняется в локальном хранилище и автоматически присоединяется к вызовам API, которые рассматриваются как несанкционированные с ошибкой «Недопустимый токен» «Аудитория недействительна», поскольку маркер идентификатора нельзя использовать для аутентификации API.

  2. После аутентификации я вызываю acquireTokenSilent метод для получения токена доступа. Я могу получить токен и установить его, но во время вызова API токен, присоединенный к заголовку авторизации, является идентификатором, а не токеном доступа. Как настроить Msalinterceptor для присоединения токена доступа к заголовку авторизации вместо идентификатора токена?

  3. Для проверки токена доступа я использовал Postman и ударить API. Опять же, авторизация не удалась (Unauthorized 401) с сообщением об ошибке «Недопустимый токен», «Подпись недействительна». В jwt.io также показывает неверную подпись. Что не так с подписью?

Это снимок моего кода:

this.subscriptionLoginSuccess = this.broadcastService.subscribe("msal:loginSuccess", (payload) => {

      const accessTokenRequest = ["user.read", "api://[scope]"];

        this.msalAuthService.acquireTokenSilent(accessTokenRequest);
}

Спасибо!

Изменить: Конфигурация в app.module.ts

MsalModule.forRoot({
      clientID: 'clientID',
      authority: 'https://login.microsoftonline.com/tanentId',
      validateAuthority: true,
      redirectUri: 'https://localhost:5001/',
      cacheLocation: 'localStorage',
      storeAuthStateInCookie: isIE,
      postLogoutRedirectUri: 'https://localhost:5001/auth/login',
      navigateToLoginRequestUrl: true,
      popUp: false,
      consentScopes: ["api://WebApiClientId/api-access"],
      unprotectedResources: ['https://www.microsoft.com/en-us/'],
      protectedResourceMap: protectedResourceMap,      
      piiLoggingEnabled: true,
    }),

 providers: [
    {
      provide: HTTP_INTERCEPTORS,     
      useClass: MsalInterceptor,
      multi: true
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...