Я использую nginx
для проверки подлинности oauth2-proxy
с помощью директивы auth_request
. Auth0 — мой восходящий поставщик аутентификации. Auth0 имеет API-интерфейс аутентификации JWT между компьютерами, настроенный для учетных записей служб, и обычную процедуру аутентификации для пользователей-людей.
Путь аутентификации человека/браузера работает отлично, но когда я пытаюсь использовать токен JWT для аутентификации на /oauth2/auth
, oauth2-proxy возвращает 401, когда запросы содержат действительный токен JWT в заголовке Authorization: Bearer <valid-token>
. Я проверил запросы к oauth2-proxy, используя tcpdump
.
daa1b934b391:/# curl -i -H "Authorization: Bearer <valid-token>" http://localhost:4180/oauth2/auth
HTTP/1.1 401 Unauthorized
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Wed, 17 Jul 2024 20:33:50 GMT
Content-Length: 13
Unauthorized
Суть моего вопроса заключается в том, предназначен ли oauth2-proxy для обработки проверки токена JWT таким образом, или он всегда будет возвращать 401, когда нет действительного набора файлов cookie сеанса (как в случае с учетной записью службы, использующей токен JWT)? Я предполагаю, что установка /oauth2/auth
(по умолчанию) и соответствующие параметры конфигурации токена JWT позволяют прокси-серверу oauth2 попытаться проверить токен и после проверки вернуть HTTP-ответ 2XX.
Если мое предположение верно, а --skip-jwt-bearer-tokens=false
верно, то какое ведение журнала возможно, чтобы выяснить, чего не хватает в моей конфигурации? Мне не удалось сделать oauth2-proxy очень «многословным».
Решение было довольно простым. Да, как уже отмечалось, oauth2-proxy отлично аутентифицирует токен JWT. Хотя и
Он может проверять и проверяет входящий токен JWT, этап проверки, скорее всего, завершится неудачей.
--log-level=debug
если запуск из командной строки или эквивалент через конфигурацию или среду должен рассказать вам больше.