Перейти к содержанию

Настройка провайдера идентификации 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-сервера.

В процессе аутентификации можно выделить следующие особенности:

  1. Если в процессе поиска записи с учетом пользовательских фильтров не будет найдена ровно одна запись, соответствующая указанному имени пользователя, то доступ будет запрещен.

  2. Если ровно одна запись, соответствующая указанному имени пользователя, будет найдена, но попытка подключения к LDAP-серверу с предоставленным паролем будет неудачна, то доступ будет запрещен.

  3. Если учетная запись найдена, и подключение к LDAP-серверу с предоставленным паролем выполнено успешно, то аутентификация также будет считаться успешной. После этого в Secrets Manager автоматически будет создана сущность Entity как уникальный идентификатор пользователя.

Экранирование специальных символов

Обратите внимание, что конфигурация DN в Secrets Manager должна выполняться с учетом экранирования специальных символов, следуя правилам RFC 4514. При настройке провайдера идентификации Microsoft Active Directory следует учесть дополнительные требования к экранированию символов # и =.

Подключение к Secrets Manager

Подключитесь к Secrets Manager следуя процедуре, описанной в разделе Подключение к Secrets Manager.

Настройка с помощью графического интерфейса

Настройка метода аутентификации

Провайдер идентификации подключается к Secrets Manager путем настройки соответствующего метода аутентификации.

  1. В веб-интерфейсе Secrets Manager выберите вкладку Access, далее Auth Methods.

    Методы аутентификации Secrets Manager
    Рис. 1. Методы аутентификации Secrets Manager

  2. Выберите опцию Enable new method, далее - LDAP и нажмите Next.

    Выбор метода аутентификации LDAP в Secrets Manager
    Рис. 2. Выбор метода аутентификации LDAP в Secrets Manager

  3. Определите значение параметра path и настройте дополнительные параметры в меню Method Options при необходимости, далее нажмите Enable Method.

    Примечание

    В данном примере используется параметр path со значением site1. Обычно, кастомизация параметра path требуется при использовании нескольких различных серверов LDAP. Вы можете оставить значение параметра path по умолчанию - ldap при настройке первого метода идентификации с типом LDAP и кастомизировать его в дальнейшем при настройке дополнительных методов аутентификации.

    Настройка метода аутентификации LDAP в Secrets Manager
    Рис. 3. Настройка метода аутентификации LDAP в Secrets Manager

  4. Выполните настройку созданного метода аутентификации в окне Configure LDAP.

    • В поле URL укажите URL-адрес сервера(ов) LDAP. Вы можете оставить по умолчанию параметры токенов, полученных в результате аутентификации данным методом.

      Настройка метода аутентификации LDAP в Secrets Manager
      Рис. 4.1. Настройка метода аутентификации LDAP в Secrets Manager

      Примечание

      В данном примере используется безопасное подключение по протоколу LDAPS. Для использования незащищенного соединения используйте параметр URL вида ldap://server01.nova.external.

    • Перейдите ниже и разверните меню LDAP Options.

    • Выберите параметры подключения к LDAP, загрузите CA-сертификат, который будет использован для проверки сертификата сервера LDAP (опционально).

      Настройка метода аутентификации LDAP в Secrets Manager
      Рис. 4.2. Настройка метода аутентификации LDAP в Secrets Manager

    • В поле User Attribute укажите имя атрибута пользовательского объекта, который соответствует имени пользователя. В зависимости от провайдера идентификации пользовательский атрибут может принимать такие значение, как sAMAccountName, cn, uid и другие.

      Примечание

      Как правило, в Active Directory в качестве атрибута имени пользователя используется параметр sAMAccountName, а в решениях на базе Linux - cn или uid.

      Настройка метода аутентификации LDAP в Secrets Manager
      Рис. 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.

      Настройка метода аутентификации LDAP в 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.

      Настройка метода аутентификации LDAP в Secrets Manager
      Рис. 4.4. Настройка метода аутентификации LDAP в Secrets Manager

      Примечание

      В данном примере используется фильтр проверки членства в группе nova-users. Группа nova-users может содержать в себе множество других группы, на уровне которых можно создавать политики Secrets Manager и правила RBAC в Kubernetes.

    Настройка фильтров и атрибутов групп необходима для того, чтобы определить, членом каких групп является пользователь. Конфигурация для этого может различаться в зависимости от вашего LDAP-сервера (провайдера идентификации) и схемы его каталога.

    Существует две основные стратегии определения членства в группах:

    • поиск пользователя и отслеживание атрибута групп, членом которых он является.

    • поиск групповых объектов, членом которых является пользователь.

    Например, для Group Filter, возвращающего групповые объекты, используйте Group Attribute со значением cn. Для запросов, возвращающих пользовательские объекты, используйте Group Attribute со значением memberOf.

Проверка метода аутентификации

После настройки метода аутентификации вы можете проверить его. Попробуйте выполнить вход в Secrets Manager с помощью учетной записи, отвечающей ранее настроенным в методе аутентификации фильтрам.

Проверка входа с использованием метода аутентификации LDAP в Secrets Manager

Рис. 5. Проверка входа с использованием метода аутентификации LDAP в 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 и его приложения, вы можете пропустить этот шаг.

Для того, чтобы добавить политики пользователям или группам пользователей следуйте процедуре ниже.

  1. Перейдите в раздел Access, далее Auth Methods.

  2. Выберите ранее созданный метод аутентификации, например, site1.

  3. Для назначения политик конкретному пользователю из каталога LDAP-сервера перейдите на вкладку Users и нажмите Create user.

    • В поле Name укажите имя пользователя.

    • В поле Policies укажите необходимую политику.

    • Сохраните настройки нажав на Save.

      Установка политик пользователям в Secrets Manager
      Рис. 6.1. Установка политик пользователям в Secrets Manager

  4. Для назначения политик группе пользователей из каталога LDAP-сервера перейдите на вкладку Groups и нажмите Create group.

    • В поле Name укажите имя группы.

    • В поле Policies укажите необходимую политику.

    • Сохраните настройки нажав на Save.

      Установка политик пользователям в Secrets Manager
      Рис. 6.2. Установка политик группам пользователей в Secrets Manager

Дополнительную информацию по настройке политик в Secrets Manager вы можете получить в разделе управления политиками.

Настройка групп пользователей

Каждая новая группа из каталога LDAP-сервера должна быть явно создана и настроена в Secrets Manager. Автоматическая синхронизация (импорт) доступных групп не поддерживается.

Например, в сценарии настройки выше использовалась общая группа nova-users для фильтрации пользователей, которым разрешена аутентификация.

Аналогичная группа в каталоге вашего LDAP-сервера может включать множество дополнительных групп. Для того, чтобы добавить дополнительные группы в Secrets Manager, следуйте процедуре ниже.

  1. Перейдите в раздел Access, далее Groups.

  2. Нажмите Create group.

    • В поле Name укажите имя группы так же, как группа названа в каталоге LDAP-сервера.

    • В поле Type укажите External.

    • (Опционально) В поле Policies можно указать политику доступа к ресурсам Secrets Manager.

    • Нажмите Create, чтобы создать группу. Откроется страница с параметрами созданной группы.

      Настройка внешних групп в Secrets Manager
      Рис. 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.