#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-адрес защищенным ресурсом.