msal-angualr возвращает 401 при доступе к удаленному API - PullRequest
0 голосов
/ 04 июля 2019

При работе с локальной копией нашего приложения Angular нам необходим доступ к API на сервере dev.Однако, поскольку переход на использование msal-angular больше не работает, он возвращает 401 и входит в цикл перенаправления.

Я не уверен, что есть конфигурация, которой нам не хватает, чтобы это работало.Это работало нормально, когда мы использовали adal, но нам нужны токены V2 для API сейчас.

export const protectedResourceMap: [string, string[]][] = [
  ['https://graph.microsoft.com/v1.0/me', ['user.read']]
];

...

imports: [
    MsalModule.forRoot({
      clientID: 'Azure-App-Id',
      authority: 'https://login.microsoftonline.com/Azure-Tenant-Id',
      validateAuthority: true,
      redirectUri: window.location.origin,
      navigateToLoginRequestUrl: false,
      cacheLocation: 'localStorage',
      popUp: false,
      protectedResourceMap: protectedResourceMap
    })
],
providers: [
    { provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: true }
],

... 

Выше моя конфигурация в app.module.ts.

Это прекрасно работает, когда яЗапустите мое угловое приложение с http://localhost:4200 на моем основном веб-интерфейсе asp.net, запустите из Visual Studio на https://localhost:5600.

Оно также работает нормально при развертывании на сервере.Однако, если я изменю приложение Angular в среде dev на использование api серверов (http://localhost:4200 -> https://www.api.azurewebsite.net),, мы всегда получим ошибки аутентификации, поскольку приложение Angular не отправляет токен носителя, как это происходит надругие два случая.

Надеюсь, этого достаточно.

Спасибо.

1 Ответ

0 голосов
/ 04 июля 2019

Я обнаружил проблему с перехватчиком msal-angular. Я думаю, что это правильно, и области видимости пусты при междоменной.

Мы создали наш собственный перехватчик из углового кода, чтобы ввести область видимости, если мы находимся в разработке.

Спасибо.

...