Разница между аутентификацией nginx ldap и CoreOS Dex

Я пытаюсь поставить какой-то аутентификатор перед моими приложениями в kubernetes. Я использовал образ nginx-ldap-auth с традиционными приложениями на контейнерах докеров. Но когда вы используете kubernetes и выставляете приложения на NodePort Services, как лучше всего провести аутентификацию?

Декс, кажется, является решением для аутентификации kubernetes в целом, но помогает ли он также в аутентификации веб-UIservices, размещенных в Kubernetes?

1 ответ

Kubernetes предлагает несколько фундаментальных концепций аутентификации, которые фактически управляют функцией контроля доступа. OpenID Connect как часть модели аутентификации представляет собой гибкий способ обработки проверки идентификатора пользователя на основе идентификатора токена с помощью различных протоколов программного обеспечения Identity Provider, таких как OAuth2, однако K8s не предоставляет никакого OpenID Identity Provider перед кластером.

Службу Dex as OpenID можно использовать для целей аутентификации на сервере API Kubernetes через плагин аутентификации OpenID K8s, однако для определения личности пользователя и получения идентификатора токена, размещенного в веб-приложении Kubernetes, необходимо предоставить любой клиент OAuth2, как описано здесь.

Предполагая, что вы открыли веб-приложение, работающее в кластере K8s, ресурс Ingress может расширить сетевые функции L7 для целевой службы приложений, такие как балансировка нагрузки, завершение SSL/TLS, маршрутизация сетевого трафика и т. Д.; для этого Ingress Controller должен быть реализован в кластере K8s, поэтому все HTTP/HTTPS-запросы будут маршрутизироваться и обрабатываться в соответствии с заданными правилами внутри объекта Ingress.

Идите дальше и ищите NGINX Ingress Controller, что дает вам возможность настроить или расширить некоторые существенные функциональные возможности типичного Ingress Controller с помощью аннотаций и применить, например, oauth2_proxy в качестве внешнего поставщика аутентификации для обработки идентификации пользовательских запросов на объекте Ingress, как описано в примере с приборной панелью Kubernetes.,

Кстати, nginx-ldap-auth Кажется, что модуль совместим с NGINX Ingress Controller, поэтому вы можете проверить его https://github.com/tiagoapimenta/nginx-ldap-auth.

Я использовал authelia для защиты входных ресурсов, он работал очень хорошо. После установки и настройки authelia все, что вам нужно сделать, это добавить пару аннотаций к вашим входящим объектам.

См. Пример здесь: https://github.com/clems4ever/authelia/blob/v4.0.0-alpha1/example/kube/apps/apps.yml

Вы можете определить довольно сложные правила для своих входящих доменов.

Другие вопросы по тегам