Как настроить перехватчик msal-angular для отправки маркера доступа (v2) в собственный домен (самостоятельно)

#angular #azure-active-directory #msal #msal-angular

Вопрос:

Я обновился до @azure/msal-angular v2 с версии v1. И я не могу понять, как настроить его для отправки маркера доступа на мой сервер, размещенный в том же домене.

Поэтому, когда мой интерфейс делает запрос /api/foo MsalInterceptor , я должен прикрепить свой токен доступа в формате версии 2, а не версии 1.

Это заставляет его отправлять токен доступа версии 1

 const msalInterceptorConfig: MsalInterceptorConfiguration = {
  interactionType: InteractionType.Redirect,
  protectedResourceMap: new Map([
    ['/', ['openid']],
  ]),
};
 

Мне удалось «обмануть» его, добавив

 const msalInterceptorConfig: MsalInterceptorConfiguration = {
  interactionType: InteractionType.Redirect,
  protectedResourceMap: new Map([
    ['/', [`api://${clientId}/access_as_user`]],
  ]),
};
 

Но потом Азурид начинает жаловаться

AADSTS90009: Приложение запрашивает токен для себя. Этот сценарий поддерживается только в том случае, если ресурс указан с использованием идентификатора приложения на основе идентификатора GUID

Так что это не вариант. Как я могу MsalInterceptor отправить токен доступа версии 2 на / ?

Ответ №1:

Я не знаю, является ли это правильным способом или даже намеренным поведением. Но следующая конфигурация отправляет маркер доступа версии 2 на мой сервер.

 const msalInterceptorConfig: MsalInterceptorConfiguration = {
  interactionType: InteractionType.Redirect,
  protectedResourceMap: new Map([
    ['/', [`${clientId}/openid`]],
  ]),
};