Различные механизмы аутентификации на одном и том же порту (TLS для GRP c и Авторизация для REST) - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь запустить сервер, который может принимать оба запроса grp c с взаимной аутентификацией TLS (tls.RequireAndVerifyClientCert), и стандартный веб-сервер HTTP, который аутентифицирует запросы на основе заголовка Authorization.

Мне кажется, что лучше оставить проверку TLS для стандартной библиотеки, поэтому я бы предпочел применить tls.RequireAndVerifyClientCert для grp c. Однако для веб-приложения браузеры не собираются пересылать клиентский сертификат.

Я пытался использовать что-то вроде this с обработчиком для обслуживания запросов по-разному в зависимости от запроса. К сожалению, сертификат однорангового узла не пересылается обработчику grp c, учитывается только конфигурация tls из веб-приложения (не может сделать оба).

В идеале я также хотел бы сохранить все в 1 двоичном (без обратного прокси).

Видите ли вы решение или вы бы пошли на компромисс и проверили аутентификацию вручную?

...