Настройка провайдера идентификации LDAP
В данном разделе описывается процедура подключения провайдера идентификации в Secrets Manager по протоколу LDAP.
Необходимые условия
- У вас есть токен доступа к хранилищу секретов Secrets Manager с привилегиями
root
. - У вас есть доступ к Kubernetes API с привилегиями администратора кластера.
- (Опционально) У вас есть CA-сертификат в формате
x509 PEM
для валидации подключения в случае использования защищенного протокола LDAPS (LDAP over SSL). - У вас есть сервисная учетная запись для выполнения операций поиска в каталоге LDAP-сервера.
- Сервер LDAP доступен для Secrets Manager.
Примечание
Secrets Manager размещается на мастер-узлах Kubernetes и запущен в качестве службы Systemd. Secrets Manager должен корректно разрешать DNS-имя LDAP-сервера или иметь доступ к его IP-адресу и портам tcp/389
, udp/389
, tcp/636
, udp/636
.
Внимание
Рекомендуется использовать защищённую версию протокола LDAPS (LDAP over SSL), которая использует безопасное TLS/SSL-соединение для передачи данных. Протокол LDAPS по умолчанию использует порт tcp/636
.
Об аутентификации по протоколу LDAP
В ходе аутентификации по протоколу LDAP в каталоге сервера (провайдера идентификации) выполняется поиск записи, соответствующей указанному имени пользователя. Если обнаружено одно уникальное совпадение, предпринимается попытка аутентификации с использованием уникального имени (DN) записи и предоставленного пароля.
В Secrets Manager вы можете определить фильтры для поиска пользователей и групп в каталоге LDAP-сервера.
В процессе аутентификации можно выделить следующие особенности:
-
Если в процессе поиска записи с учетом пользовательских фильтров не будет найдена ровно одна запись, соответствующая указанному имени пользователя, то доступ будет запрещен.
-
Если ровно одна запись, соответствующая указанному имени пользователя, будет найдена, но попытка подключения к LDAP-серверу с предоставленным паролем будет неудачна, то доступ будет запрещен.
-
Если учетная запись найдена, и подключение к LDAP-серверу с предоставленным паролем выполнено успешно, то аутентификация также будет считаться успешной. После этого в Secrets Manager автоматически будет создана сущность Entity как уникальный идентификатор пользователя.
Экранирование специальных символов
Обратите внимание, что конфигурация DN в Secrets Manager должна выполняться с учетом экранирования специальных символов, следуя правилам RFC 4514. При настройке провайдера идентификации Microsoft Active Directory следует учесть дополнительные требования к экранированию символов #
и =
.
Подключение к Secrets Manager
Подключитесь к Secrets Manager следуя процедуре, описанной в разделе Подключение к Secrets Manager.
Настройка с помощью графического интерфейса
Настройка метода аутентификации
Провайдер идентификации подключается к Secrets Manager путем настройки соответствующего метода аутентификации.
-
В веб-интерфейсе Secrets Manager выберите вкладку Access, далее Auth Methods.
Рис. 1. Методы аутентификации Secrets Manager -
Выберите опцию Enable new method, далее - LDAP и нажмите Next.
Рис. 2. Выбор метода аутентификации LDAP в Secrets Manager -
Определите значение параметра path и настройте дополнительные параметры в меню Method Options при необходимости, далее нажмите Enable Method.
Примечание
В данном примере используется параметр
path
со значениемsite1
. Обычно, кастомизация параметраpath
требуется при использовании нескольких различных серверовLDAP
. Вы можете оставить значение параметраpath
по умолчанию -ldap
при настройке первого метода идентификации с типом LDAP и кастомизировать его в дальнейшем при настройке дополнительных методов аутентификации.Рис. 3. Настройка метода аутентификации LDAP в Secrets Manager -
Выполните настройку созданного метода аутентификации в окне Configure LDAP.
-
В поле URL укажите URL-адрес сервера(ов) LDAP. Вы можете оставить по умолчанию параметры токенов, полученных в результате аутентификации данным методом.
Рис. 4.1. Настройка метода аутентификации LDAP в Secrets Manager Примечание
В данном примере используется безопасное подключение по протоколу LDAPS. Для использования незащищенного соединения используйте параметр
URL
видаldap://server01.nova.external
. -
Перейдите ниже и разверните меню LDAP Options.
-
Выберите параметры подключения к LDAP, загрузите CA-сертификат, который будет использован для проверки сертификата сервера LDAP (опционально).
Рис. 4.2. Настройка метода аутентификации LDAP в Secrets Manager -
В поле User Attribute укажите имя атрибута пользовательского объекта, который соответствует имени пользователя. В зависимости от провайдера идентификации пользовательский атрибут может принимать такие значение, как
sAMAccountName
,cn
,uid
и другие.Примечание
Как правило, в Active Directory в качестве атрибута имени пользователя используется параметр
sAMAccountName
, а в решениях на базе Linux -cn
илиuid
.Рис. 4.2. Настройка метода аутентификации LDAP в Secrets Manager -
Перейдите ниже и разверните меню Customize User Search.
-
В поле Name of Object to bind (binddn) укажите уникальное имя (DN) сервисной учетной записи для выполнения операций поиска в каталоге LDAP-сервера.
-
В поле Bindpass укажите пароль пользователя для подключения к LDAP.
-
В поле User DN укажите DN, в котором будет производится поиск пользователей.
-
В поле User Search Filter определите шаблон, который используется как фильтр при поиске пользователей в LDAP. Фильтр может использоваться для ограничения пользователей, которым необходимо разрешить доступ.
Примечание
Параметры
{{.UserAttr}}
и{{.Username}}
являются переменными Go-шаблона, который применяется в Secrets Manager при конструировании запросов к LDAP-серверу. В переменную{{.UserAttr}}
передается установленное значение в полеUser Attribute
, а переменная{{.Username}}
является имененем, которое пользователь вводит при входе в Secrets Manager.Рис. 4.3. Настройка метода аутентификации LDAP в Secrets Manager -
Перейдите ниже и разверните меню Customize Group Membership Search.
-
В поле Group Filter определите шаблон, который используется как фильтр при поиске групп, в которых состоит пользователь.
Примечание
Для получения групп пользователя, включая вложенные, в Active Directory используется оператор
LDAP_MATCHING_RULE_IN_CHAIN
-1.2.840.113556.1.4.1941
. -
В поле Group Attribute укажите LDAP-атрибут, который следует использовать для объектов, возвращаемых фильтром Group Filter, для перечисления членства в группах пользователей.
-
В поле Group DN укажите DN, в котором будет производится поиск групп.
-
Сохраните настройки нажав на Save.
Рис. 4.4. Настройка метода аутентификации LDAP в Secrets Manager Примечание
В данном примере используется фильтр проверки членства в группе
nova-users
. Группаnova-users
может содержать в себе множество других группы, на уровне которых можно создавать политики Secrets Manager и правила RBAC в Kubernetes.
Настройка фильтров и атрибутов групп необходима для того, чтобы определить, членом каких групп является пользователь. Конфигурация для этого может различаться в зависимости от вашего LDAP-сервера (провайдера идентификации) и схемы его каталога.
Существует две основные стратегии определения членства в группах:
-
поиск пользователя и отслеживание атрибута групп, членом которых он является.
-
поиск групповых объектов, членом которых является пользователь.
Например, для
Group Filter
, возвращающего групповые объекты, используйтеGroup Attribute
со значениемcn
. Для запросов, возвращающих пользовательские объекты, используйтеGroup Attribute
со значениемmemberOf
. -
Проверка метода аутентификации
После настройки метода аутентификации вы можете проверить его. Попробуйте выполнить вход в Secrets Manager с помощью учетной записи, отвечающей ранее настроенным в методе аутентификации фильтрам.
Если при настройке метода аутентификации вы не меняли параметр path
, то при входе опцию Mount path можно не указывать.
Внимание
Если при входе вы получаете ошибку Authentication failed: ldap operation failed: failed to bind as user
, это означает две возможные проблемы:
-
Ошибка в учетных данных сервисной учетной записи, из-за которых поиск пользователя в каталоге LDAP-сервера был неуспешен. Проверьте, что параметры сервисной учетной записи указаны верно, а в логах LDAP-сервера фиксируется успешный вход данной учетной записи.
-
Ошибка в настроенных фильтрах, по которым выполняется поиск пользователя. Проверьте настроенные фильтры. Для локализации проблемы с фильтром рекомендуется использовать в тестовых целях как можно более простой фильтр без комплексных условий. Также в диагностике может помочь использование утилиты
ldapsearch
для работы с каталогом LDAP-сервера.
Настройка политик доступа к ресурсам Secrets Manager для пользователей и групп
Если пользователям из каталога LDAP-сервера требуется доступ к ресурсам в Secrets Manager, вы можете назначить определенным пользователям или группам специальные политики. Это может быть полезно в следующих сценариях:
-
Пользователи должны иметь доступ к какому-либо общему или приватному хранилищу секретов.
-
Существует необходимость настройки учетной записи администратора Secrets Manager для пользователя из каталога LDAP-сервера.
Если пользователям из каталога LDAP-сервера требуется только возможность входа в Kubernetes и его приложения, вы можете пропустить этот шаг.
Для того, чтобы добавить политики пользователям или группам пользователей следуйте процедуре ниже.
-
Перейдите в раздел Access, далее Auth Methods.
-
Выберите ранее созданный метод аутентификации, например, site1.
-
Для назначения политик конкретному пользователю из каталога LDAP-сервера перейдите на вкладку Users и нажмите Create user.
-
В поле Name укажите имя пользователя.
-
В поле Policies укажите необходимую политику.
-
Сохраните настройки нажав на Save.
Рис. 6.1. Установка политик пользователям в Secrets Manager
-
-
Для назначения политик группе пользователей из каталога LDAP-сервера перейдите на вкладку Groups и нажмите Create group.
-
В поле Name укажите имя группы.
-
В поле Policies укажите необходимую политику.
-
Сохраните настройки нажав на Save.
Рис. 6.2. Установка политик группам пользователей в Secrets Manager
-
Дополнительную информацию по настройке политик в Secrets Manager вы можете получить в разделе управления политиками.
Настройка групп пользователей
Каждая новая группа из каталога LDAP-сервера должна быть явно создана и настроена в Secrets Manager. Автоматическая синхронизация (импорт) доступных групп не поддерживается.
Например, в сценарии настройки выше использовалась общая группа nova-users
для фильтрации пользователей, которым разрешена аутентификация.
Аналогичная группа в каталоге вашего LDAP-сервера может включать множество дополнительных групп. Для того, чтобы добавить дополнительные группы в Secrets Manager, следуйте процедуре ниже.
-
Перейдите в раздел Access, далее Groups.
-
Нажмите Create group.
-
В поле Name укажите имя группы так же, как группа названа в каталоге LDAP-сервера.
-
В поле Type укажите External.
-
(Опционально) В поле Policies можно указать политику доступа к ресурсам Secrets Manager.
-
Нажмите Create, чтобы создать группу. Откроется страница с параметрами созданной группы.
Рис. 7.1. Настройка внешних групп в Secrets Manager
Вы создали сущность внешней группы в Secrets Manager, которую далее необходимо привязать к действительной группе в каталоге LDAP-сервера, то есть создать алиас (Alias). Для этого выполните действия ниже.
-
Нажмите Add alias.
-
В поле Name укажите имя алиаса так же, как группа названа в каталоге LDAP-сервера.
-
В поле Auth Backend выберете имя метода аутентификации LDAP.
-
Нажмите Create, чтобы создать алиас.
Примечание
Для удобства и простоты администрирования рекомендуется использовать один алиас на одну сущность Secrets Manager.
Вы выполнили привязку группы в Secrets Manager к действительной группе в каталоге LDAP-сервера. Аналогичным спобосом вы можете создать все необходимые группы и алиасы для других доступных групп в каталоге LDAP-сервера.
-
Настройка доступа к приложениям OIDC
Для возможности использования приложений Nova Container Platform пользователи должны быть явно назначены каким-либо приложениям.
Информация
Получить подробную информацию о преднастроенных приложениях вы можете в разделе документации Приложения OAuth.
Выполните настройку доступа к необходимым приложениям OIDC в Nova Container Platform согласно процедуре, описанной в разделе документации Настройка доступа к приложениям OAuth
Настройка авторизации в Kubernetes
После того, как все необходимые назначения настроены для пользователя или группы пользователей, вы можете настроить необходимые правила RBAC в среде Kubernetes. Это может быть необходимо в случаях, когда вам необходимо добавить в Kubernetes пользователей в качестве администратора кластера, администратора пространства имен (namespace) и других.
Выполните настройку RBAC согласно процедуре, описанной в разделе документации Использование RBAC для разграничения доступа в Kubernetes.