Я пытаюсь настроить новый сервер, который действует как шлюз (используя spring-cloud-gateway в качестве базы), и мне нужно иметь возможность аутентифицировать пользователей через удаленный сервер LDAP, прежде чем фактически пересылать любые последующие запросы. Как мне реализовать это (пакеты, конфигурация и т. д.)?
Это должно быть довольно прямолинейно объяснить. Здесь есть два опасения:
Думайте о сегменте шлюза как о любой другой части веб-приложения. Не слишком беспокойтесь об этой части.
Что касается получения spring-security + LDAP, вам нужно будет проработать и настроить эту часть в соответствии с вашими требованиями, а затем просто убедиться, что функциональность spring-cloud-gateway находится под фильтром аутентификации.
Если вы используете spring-boot, возможно, вам понадобятся стартеры для sgc и spring-security. Они должны быть достаточно хорошо задокументированы и просты в настройке.
Функциональность LDAP в spring-security очень зрелая и должна быть достаточно простой для настройки без особых усилий. Большая часть функций, лежащих в основе этого (LDAP), реализована через JRE.
@Dave Что такое фильтр аутентификации в SpringCloudGateway? Вы говорите об EnableWebFluxSecurity?
@user3474541 user3474541 Я написал этот ответ примерно год назад, мне пришлось бы вернуться и просмотреть, как защищен Spring Cloud Gateway, но в целом инфраструктура Spring-Security может это поддерживать. WebFlux — это (для меня) гораздо более новая технология, о которой я не могу говорить.
Вы также должны прочитать этот Не разрешайте прямые вызовы микросервисов. Разрешить только через шлюз API.