Как настроить access_token для Azure AppService, чтобы разрешить доступ к двум FunctionApp, защищенным через Azure Active Directory? - PullRequest
0 голосов
/ 17 мая 2019

У меня есть приложение Angular, размещенное в AppService, а два FunctionApp служат API-интерфейсами. Все 3 зарегистрированы в Azure AD и настроены для аутентификации Azure AD. Пользователи AD могут иметь разные AppRoles для каждого из этих FunctionApps.

enter image description here

AppService были предоставлены разрешения для доступа к двум FunctionApp.

enter image description here

Он также настроен для возврата JWT в access_token. Однако я могу добавить только одно приложение в качестве ресурса в дополнительном логическом элементе для AppService.

enter image description here

Таким образом, сгенерированный access_token после вызова /.auth/me из AppService имеет заявки только для одного FunctionApp, но не для другого FunctionApp. Это означает, что я не могу получить доступ к обоим FunctionApp из кода Angular в AppService.

Есть ли способ обойти это и получить access_token (s) для доступа к обоим FunctionApps?

1 Ответ

1 голос
/ 20 мая 2019

Невозможно совместно использовать токены Azure AD для нескольких ресурсов

Первое, что приходит на ум, - это использовать один и тот же токен доступа для нескольких ресурсов Azure AD.К сожалению, это не разрешено.Azure AD выдает токен для определенного ресурса (который сопоставлен с приложением Azure AD).Когда мы вызываем AcquireToken, нам нужно предоставить один идентификатор ресурса.В результате токен может использоваться только для ресурса, соответствующего предоставленному идентификатору.

Обходной путь

Способ сделать то, что вы пытаетесь сделать, это используйте токен обновления, полученный при первоначальном запросе токена, чтобы запросить токен доступа ко второму ресурсу.Один токен доступа работает только для одного ресурса. Нет причин, чтобы это усложняло ваш код.ADAL (или MSAL) занимается управлением токенами, отслеживанием того, какой токен предназначен для какого ресурса, и, при необходимости, запросом дополнительных токенов доступа для нового ресурса.

Для получения дополнительной информации см.это ТАК .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...