Как добавить нулевую область видимости для всех нежелательных API в конфигурации MSAL angular

#azure #azure-ad-b2c #msal #msal.js

#azure #azure-ad-b2c #msal #msal.js

Вопрос:

У нас есть приложение angular, которое вызывает несколько API. В настоящее время мы просто заинтересованы во внедрении токена доступа b2c только к двум API и хотим избежать этого для других API.

Наши API следующие

 https://testdomain.com/onprem/proxy/handler/api/account/someendpoint
https://testdomain.com/onprem/proxy/handler/something/api/account/someendpoint
https://testdomain.com/onprem/something/api/account/endpoint
https://testdomain.com/cloud/api/app1/something/endpoint
  

Поскольку структура вызовов API не похожа. у нас есть наша текущая реализация, как показано ниже

 export const protectedResourceMap: [string, string[]][] = [
['/cloud/api/app1/account/gettestaccount',['scope1']],
['/cloud/api/app2/account/getanotheraccount',['scope2']],
['/onprem/*/*/*/*/*', null],
['/onprem/*/*/*/*/*/*', null],
['/onprem/*/*/*/*', null]
]
  

Таким образом, перехватчик MSAL сопоставляет req.url с protectedresourcemap с помощью минимального соответствия.
В приведенном выше примере я указал 3 разных шаблона с помощью scopes:null . So getScopesForEndpoint() будет вызываться 5 раз, даже если из этих 5 вызовов 3 являются нежелательными.

Не могли бы вы предложить лучший подход к добавлению URL-адресов в protectedResourceMap will scopes: null , чтобы я мог уменьшить количество обращений к getScopesForEndpoint() и повысить производительность интерфейсного приложения.

Заранее спасибо.

Ответ №1:

getScopesForEndpoint всегда будет вызываться, даже до изменения на minimatch. Мы можем рассмотреть возможность улучшения getScopesForEndpoint , чтобы не вызывать минимальное соответствие, если null оно установлено, если есть проблемы с производительностью в этом сценарии.

Комментарии:

1. Возможно ли сначала проверить api на соответствие защищенному ресурсу, если вызов api соответствует какому-либо из защищенных ресурсов, а затем вызвать getScopesForEndpoint ?

2. getScopesForEndpoint проверяет, является ли данный URL-адрес защищенным ресурсом.