У меня есть ряд сервисов, которые аутентифицируются с помощью токенов OAuth Bearer. Я могу получить токены, используя либо грант OAuth Client Credentials, либо Resource Owner Credentials Grant.
Однако у меня есть ряд существующих систем, которые могут выполнять вызовы, аутентифицированные только с использованием соединений Mutual TLS.
Вместо того, чтобы обновлять все вызывающие приложения, чтобы иметь возможность получать токены носителя OAuth, я бы вместо этого хотел создать прокси шлюза, который:
- Получает соединения с проверкой подлинности TLS
- Использование субъекта сертификата для идентификации системного субъекта
- Получение токена от имени этой системы с использованием учетных данных клиента или гранта владельца ресурса
- Выполните вызов базовой службы и верните результаты клиенту
По сути, я хочу скрыть тот факт, что OAuth используется от старых клиентов, и разрешить им работать исключительно с Mutal TLS Authentication.
Существуют ли обратные прокси-серверы или способы или модули для Ngnix, Apache, Envoy или аналогичных обратных прокси-серверов HTTP, которые могли бы достичь этого без создания полного прокси?
Я обнаружил множество модулей, которые обрабатывают случай настройки Apache и Ngnix в качестве ретранслятора OAuth или сервера ресурсов с использованием различных модулей, таких как
Но не могу найти примеров того, как они выступают в качестве клиента OAuth или Open ID Connect в качестве прокси-сервера для клиента с проверкой подлинности Mutual TLS.
Особенно я хочу избежать написания прокси-части. Даже если мне нужно написать сценарий реального взаимодействия OAuth. Самое близкое, что я нашел, - это сообщение в блоге о реализации OAuth RP в скриптах Envoy lua .
Мне трудно представить, что это уникальная потребность, поэтому мне интересно, есть ли какая-нибудь стандартная реализация этого шаблона, которую я не нашел.