Ошибка аутентификации службы приложений Azure с токеном-носителем (от службы к службе)

В прошлом году я разработал серию многоуровневых приложений, которые использовали аутентификацию / авторизацию службы приложений Azure (EasyAuth) с Azure AD. У меня было два приложения клиентского интерфейса и четыре API.

Мне удалось установить «Действие, которое нужно предпринять, когда запрос не аутентифицирован», на «Вход с помощью Azure Active Directory» для ВСЕХ приложений. Клиентские интерфейсы и API ресурсов.

Клиентские приложения будут использовать ADAL (на стороне сервера) для получения токенов доступа для API с потоком как субъекта-службы, так и потока «от имени».

Эта проблема:

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

Я могу получить жетон на предъявителя без проблем. В претензиях фигурируют даже пользовательские AppRoles. Токены кажутся действительными, но они не могут пройти через EasyAuth, если у меня установлено значение «Вход с помощью Azure Active Directory».

Я также заметил, что access_token, возвращаемый при вызове /.auth/me, зашифрован. Этого НЕ происходило всего несколько месяцев назад.

Что еще хуже, старые приложения все еще работают, но регистрация приложений недоступна на портале, и я не могу проверить манифесты.

Что-то изменилось недавно? Можно ли по-прежнему подключиться к конечной точке EasyAuth с помощью токена-носителя?


person David    schedule 16.02.2018    source источник


Ответы (1)


Оказывается, для того, чтобы это работало сейчас, вы должны настроить конфигурацию EasyAuth в API ресурса на Advanced и добавить запись в параметр Allowed Token Audiences, которая не включает "/.auth/login/aad/callback"

person David    schedule 16.02.2018
comment
FWIW по моему опыту, поле Allowed Token Audiences должно иметь очень конкретные значения, указанные здесь: stackoverflow.com/questions/42640158/ - person Auth Infant; 16.03.2019