Настроить службы каталогов для Automation Config с помощью протокола LDAP можно в рабочей области «Проверка подлинности». Этот протокол используется для подключения к таким службам, как Active Directory или Microsoft Azure.

Платформа VMware Cloud Services (CSP) обеспечивает интеграцию с LDAP для заказчиков продукта SaaS, которым необходимо подключение к службам, например Active Directory или Microsoft Azure. Инструкции по подключению экземпляра Automation Config к серверу LDAP см. в руководстве Настройка корпоративной федерации с помощью VMware Cloud Services.

Примечание: Для проверки подлинности пользователей в Automation Config при необходимости можно использовать несколько систем одновременно. Например, можно использовать поставщик удостоверений (IdP) на базе протоколов SAML или LDAP и одновременно хранить некоторые учетные данные пользователей на сервере RaaS. Однако Automation Config не позволяет настраивать более двух поставщиков SAML или одновременно два поставщика LDAP.

В Automation Config для проверки подлинности в системах на основе LDAP используется следующий процесс конечного сервера.

  • Предварительный просмотр — при предварительном просмотре параметров подключения Automation Config получает от сервера LDAP образец списка пользователей и групп, который позволяет проверить параметры конфигурации.
  • Вход — когда пользователь вводит учетные данные в форме входа в Automation Config, конечный сервер проверяет соответствие записям в базе данных. Затем инициируется многоэтапная процедура поиска, и после нахождения совпадения подтверждается подлинность пользователя. С учетом этой процедуры поиска отдельные включенные пользователи во включенных группах не отображаются в рабочей области «Роли» до первого входа пользователя.
  • Фоновые задачи — Automation Config периодически выполняет фоновое задание по поиску всех привязанных групп и пользователей в подключении к службе каталогов, чтобы подтвердить их существование. Если группа или пользователь удалены, конечный сервер деактивирует соответствующую ссылку в базе данных.
  • Архивные группы и пользователи — архивными становятся все группы, удаленные из подключения к службе каталогов. Хотя эти группы неактивны и пользователи не могут войти в систему, они по-прежнему отображаются в рабочей области «Роли» и их можно выбрать. Это также верно для всех удаленных пользователей, которые ранее присутствовали в рабочей области «Роли».
  • Вложенные группы — если имеются вложенные группы, то при включении родительской группы также по умолчанию включаются все дочерние группы.

Настройка подключения LDAP

Чтобы настроить LDAP, сначала создайте подключение, а затем включите пользователей и группы LDAP, подлинность которых требуется проверять для Automation Config. После включения групп или пользователей можно определить их параметры управления доступом на основе ролей (RBAC).

Можно использовать стандартные значения параметров, настроенные для вашей службы каталогов, например Active Directory или OpenLDAP.

Примечание: Описанные далее действия должен выполнять опытный администратор LDAP или Active Directory, который знаком с общей конфигурацией системы LDAP. Обратитесь за помощью к своему администратору.

Чтобы настроить службу каталогов LDAP, сделайте следующее.

  1. (Необязательно.) Перед настройкой LDAP целесообразно проверить подключение и выполнение запросов с помощью стороннего инструмента. Пользователи AD могут использовать LDP или ADSI Edit. Пользователям Linux рекомендуется применять инструмент ldapsearch.
    Примечание: Более подробную информацию о проверке с помощью этих инструментов см. в статье Проверка подключения к службе каталогов и устранение его неисправностей в центре поддержки.
  2. В боковом меню выберите Администрирование > Проверка подлинности.
  3. Щелкните Создать.
  4. В меню Тип конфигурации выберите LDAP.
  5. (Необязательно.) В разделе Настройки щелкните Предварительно устанавливать стандартные значения и в раскрывающемся списке выберите службу каталогов.

    Стандартные значения устанавливаются в соответствии с вашим выбором. Однако некоторые параметры, например DN для поиска пользователя, остаются незаполненными. Проверьте соответствие записей схеме службы каталогов и замените заполнители значениями для своей службы.

  6. Введите или проверьте информацию о своем подключении LDAP.

    Общие

    Поле Описание
    Имя Имя подключения LDAP. Поскольку это только отображаемое имя, можно использовать любое имя, которое поможет отличать этот конечный сервер проверки подлинности от других.
    Узел Адрес сервера LDAP в формате полного доменного имени (FQDN) или IP-адреса.
    Порт Порт, на котором настроен сервер LDAP. По умолчанию используется порт 389 для LDAP без шифрования и порт 636 для LDAP по SSL.
    Фоновая синхронизация Automation Config проверяет всех пользователей и группу на конечном сервере проверки подлинности через заданный в этом параметре интервал (в минутах).
    SSL
    Включить SSL
    Выберите подключение к серверу LDAP по протоколу SSL. Рекомендуется включить этот параметр, поскольку в противном случае Automation Config будет передавать данные в виде обычного текста по незащищенному подключению. По умолчанию сертификат сервера LDAP проверяется с помощью системного хранилища сертификатов. Если на сервере LDAP используется самозаверяющий сертификат или сертификат частного центра сертификации, необходимо обновить конфигурацию /etc/raas/raas, чтобы разрешить проверку подлинности. Подробные инструкции см. в Настройка самозаверяющего сертификата или сертификата из частного центра сертификации.
    Проверять сертификат
    Установите этот флажок, чтобы проверять сертификаты SSL при подключении. Не устанавливайте флажок, чтобы пропустить проверку, например при использовании самозаверяющих сертификатов (не рекомендуется для производственной среды).

    Проверка подлинности

    Поле Описание
    Базовое DN для проверки подлинности

    Базовое различающееся имя LDAP. Это местоположение, из которого запрашиваются группы и пользователи, например DC=sse,DC=example,DC=com.

    Примечание: Страница сведений о LDAP содержит отдельные поля ввода для описанных ниже объектов класс лиц, имя атрибута учетной записи, класс групп, имя атрибута группы и расписание синхронизации. Поэтому эти объекты не следует включать в поле «Базовое DN».
    Привязанное DN администратора DN администратора, настроенное для сервера LDAP. Automation Config использует этот параметр для проверки подлинности при доступе к каталогу для поиска пользователей и групп. Введите данные в следующем формате: cn=Administrator,cn=Users,dc=example,dc=com.
    Пароль привязанного DN администратора

    Индивидуальный пароль администратора.

    Хранится в зашифрованном виде в базе данных. Не хранится в виде обычного текста.

    Фильтр привязанного DN для проверки подлинности

    Фильтр, используемый для выбора пользователя. Результат поиска — имя DN пользователя, которое Automation Config использует для привязки к каталогу и предоставления пользователю доступа к Automation Config. Полезно для ограничения количества результатов операции поиска.

    Примечание: Так как синтаксис фильтра может быть довольно сложным, перед заполнением этого поля рекомендуется проверить данные с помощью LDP, ldapsearch или другого подобного инструмента, чтобы при необходимости внести корректировки.

    В следующем примере фильтр возвращает только ту учетную запись, которая соответствует указанному имени пользователя, принадлежащему группам DevOps или Level II.

    (&(objectclass=user)(sAMAccountName={username})(|(memberOf=CN=DevOps,OU=Groups,OU=TestCompanyHQ,DC=adtest,DC=com)(memberOf=LevelII,OU=Groups,DC=adtest,DC=com)))

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

    Примечание: При настройке структуры леса оставьте это поле пустым.
    Имя атрибута удаленного уникального идентификатора Имя значения, которое используется для идентификации уникальных записей. Это атрибут уникального идентификатора для всех записей. В AD это ObjectGUID.

    Группы

    Поле Описание
    DN поиска группы База для поиска групп. Например, в AD это может быть cn=Groups,dc=example,dc=com. Указывает, в каком месте каталога следует искать группы. Этот параметр используется вместе с параметром «Область поиска группы» ниже.
    Область поиска группы

    Определяет глубину поиска по каталогу, начиная с базового уровня, указанного в параметре «DN поиска группы», и может принимать одно из четырех значений.

    baseObject
    Значение 0, которое часто именуется base. Используется для поиска только этого объекта (и никаких других).
    singleLevel
    Значение 1, которое часто именуется one. Используется для поиска совпадений только на базовом уровне среди ближайших дочерних объектов.
    wholeSubtree
    Значение 2 (или SUBTREE в ldap3), которое часто именуется sub. Используется для поиска на базовом уровне и всех подчиненных уровнях любой глубины.
    subordinateSubtree
    Значение 3, которое часто именуется subordinates. Действует аналогично wholeSubtree, но при этом игнорируются записи базового уровня.
    Фильтр DN поиска группы Поисковый фильтр для извлечения групп из каталога. Обычно это (objectClass=group), но в некоторых конфигурациях AD это может быть (objectCategory=group). Используется в дополнение к параметру «Класс группы» для более глубокой детализации.
    Класс группы Имя класса объекта, используемое для определения групп, например groupOfNames.
    Атрибут имени группы Имя атрибута, который нужно использовать для имени группы. Атрибут не может иметь несколько значений.
    Атрибут членства в группе Имя атрибута в записи пользователя, содержащей имя группы, например memberOf.

    Пользователи

    Поле Описание
    DN поиска пользователя База поиска пользователей, например cn=Users,dc=example,dc=com в AD или cn=people,cn=accounts,dc=example,dc=com в других службах каталогов. Указывает, в каком месте каталога следует искать пользователей. Этот параметр используется вместе с параметром «Область поиска пользователя» ниже.
    Область поиска пользователя Определяет глубину поиска по каталогу, начиная с базового уровня, указанного в параметре «DN поиска пользователя», и может принимать одно из четырех значений. См. четыре значения, приведенные в описании параметра «Область поиска группы».
    Фильтр DN поиска пользователя Поисковый фильтр для извлечения пользователей из каталога. Обычно это (objectClass=person), но в некоторых конфигурациях AD это может быть (objectCategory=user).
    Класс лиц Имя класса службы каталогов, куда включены пользователи, для которых требуется разрешить вход. В большинстве систем (в том числе и в Active Directory) используется person, но в некоторых может использоваться user или inetOrgPerson.
    Атрибут идентификатора пользователя Уникальное имя атрибута учетной записи пользователя. В AD это sAMAccountName. В других службах это может быть uid или memberUid.
    Атрибут членства пользователя Имя атрибута в записи группы, содержащей имя пользователя. Возможными вариантами могут быть member и uniquemember.
  7. Чтобы просмотреть настройки без сохранения, щелкните Предварительный просмотр обновлений.

    В окне предварительного просмотра отображаются пользователи и группы, выбранные для подключения. При необходимости можно перейти на вкладку Группы или Пользователи, чтобы увидеть пользователей и группы, которые связаны со службой.

  8. Нажмите Сохранить.

    Конфигурация LDAP сохранена. Чтобы проверить правильность конфигурации, попробуйте войти в Automation Config из тестовой учетной записи. Если войти в систему не удалось, см. рекомендации в разделе Устранение неполадок.

    Примечание: Automation Config сохраняет параметры подключения конфигураций LDAP, включая идентифицированные группы и идентифицированных пользователей. Поиск пользователей и групп осуществляется только в пределах заданной области, при этом весь каталог не синхронизируется.

    Со временем каталог LDAP может потребоваться обновить или повторно синхронизировать. Например, это следует сделать, когда добавляются новые пользователи, которых требуется включить в Automation Config.

Включение групп и пользователей

После настройки подключения LDAP необходимо настроить группы службы каталогов и убедиться, что пользователи могут выполнить вход в Automation Config. Чтобы настроить группы службы каталогов, выполните следующее.

  1. В рабочей области «Проверка подлинности» выберите требуемую конфигурацию LDAP.
  2. Перейдите на вкладку Группы, чтобы увидеть список групп, найденных в конфигурации LDAP.
    Примечание: При наличии большого количества групп загрузка страницы может занимать до 1 минуты.
  3. Выберите группы, которые необходимо включить в Automation Config.
  4. Перейдите на вкладку Пользователи, чтобы увидеть список пользователей, полученных из конфигурации LDAP.
    Примечание: При наличии большого количества пользователей загрузка страницы может занимать до 1 минуты.
  5. Выберите пользователей, которых необходимо включить в Automation Config.
    Примечание: Все пользователи, добавленные во включенные группы, уже выбраны, и этот выбор нельзя отменить.
    Список пользователей, которые уже активированы в SaltStack Config
  6. Нажмите Сохранить.

    Теперь можно определить настройки контроля доступа на основе ролей (RBAC) для выбранных групп. Однако рабочая область «Роли» позволяет управлять настройками для отдельных пользователей, добавленных в выбранные группы, только после первого входа пользователя в систему. Чтобы удалить группы или пользователей, отмените выбор группы или пользователя, а затем нажмите кнопку Сохранить.

    Дополнительные сведения об RBAC в Automation Config см. в разделе Определение ролей пользователей.

Устранение неполадок подключения LDAP

Если просмотреть сведения о подключении не удалось, выполните следующую процедуру устранения неполадок.
Проблема Описание Решение
Не удается просмотреть подключение

Если вы не можете просмотреть группы и пользователей, в большинстве случаев это может быть связано с проблемами соединения между сервером LDAP и Automation Config или недопустимым значением в форме конфигурации LDAP.

  1. Убедитесь, что TCP-соединения между Automation Config и выбранным портом на сервере LDAP разрешены.
  2. Перепроверьте записи в форме и проверьте синтаксис с помощью сторонней программы. См. раздел Проверка и устранение неполадок с подключением к службе каталогов.
  3. Если ни одно из предыдущих решений не помогло устранить проблему, см. раздел «Прочие проблемы» ниже.
  4. Если ни одно из решений выше не помогло, обратитесь в службу поддержки.
При попытке предварительного просмотра подключения на странице происходит сбой загрузки. Если процесс загрузки страницы зависает более чем на две минуты, перезапустите службу RaaS, затем удалите конфигурацию и создайте ее снова.
  1. Откройте журнал RaaS.
    tail -f /var/log/raas/raas

    Журнал содержит сообщение об ошибке, аналогичное следующему.

    [ERROR    :256][ForkPoolWorker-2:10253][ldap_preview_background_task(some_uuid)]
    Task ldap preview_background_task[some_uuid]raised unexpected: KeyError('ad-1_preview')
  2. Остановите и перезапустите службу RaaS.
    systemctl stop raas
    systemctl start raas
  3. Вернитесь в пользовательский интерфейс Automation Config и удалите подключение LDAP.
    Примечание:

    Перед удалением можно скопировать записи конфигурации и вставить их в резервный текстовый файл.

  4. Снова создайте конфигурацию LDAP.
Прочие проблемы

Если подключение LDAP уже настроено и сохранено, но пользователи не могут войти в систему или если обнаружены другие проблемы, проверьте журналы raas в режиме расширенной отладки, чтобы определить основную причину.

Чтобы включить расширенную отладку, выполните следующее.

  1. В RaaS откройте /etc/raas/raas.
  2. Внесите следующие изменения.
    • В разделе Loggingoptions раскомментируйте log_file_loglevel:debug.
    • В разделе AD/LDAPdriverconfiguration раскомментируйте log_level и установите значение log_level:EXTENDED.
  3. Остановите и перезапустите службу RaaS.
    systemctl stop raas
    systemctl start raas
  4. Просмотрите журнал raas.
    tail -f /var/log/raas/raas

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

  • Неправильные настройки подключения (SSL). Настройте параметры SSL.
    [raas.utils.validation.schemas.settings][DEBUG   :546 ][Webserver:9096]
    Error while connecting to AD/LDAP Server. SSL connection issues: socket
    ssl wrapping error: [Errno 104] Connection reset by peer
  • Неправильный пароль привязки DN администратора. Проверьте пароль и введите его снова.
    [raas.utils.rpc   ][DEBUG   :284 ][Webserver:9095]
    Processed RPC request(129360670417695). Response:
    {'riq': 129360670417695, 'ret': None, 'error': {'code': 3004, 'message':
    'Request validation failure.', 'detail': {'_schema':
    ['Credentials are not valid']}}, 'warnings': []}
  • Конфликт создает предварительно заполненный фильтр проверки подлинности привязки DN по умолчанию. Оставьте поле незаполненным или используйте {username} вместо {{username}}.
    Примечание:

    Эта ошибка может происходить, если вы уже сохранили подключение LDAP, но пользователи не могут войти в систему.

    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :903 ][Webserver:9096]
    Running _get_auth_backend_user with this search_filter: (&(objectclass=person)(sAMAccountName={username}))
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :931 ][Webserver:9096]
    Could not find any user using '(&(objectclass=person)(sAMAccountName={username}))'
    as the search filter in the ldap backend under the ad-1 configuration.
    Trying remote_uid 'None'
    
    [var.tmp._MEIBCyG76.raas.mods.auth.ldap][DEBUG   :963 ][Webserver:9096]
    Could not find any user using '(&(objectClass=person)(objectGUID=None))'
    as the search filter in the ldap backend under the ad-1 configuration.

Настройка самозаверяющего сертификата или сертификата из частного центра сертификации

Automation Config поддерживает Active Directory (AD) и LDAP в качестве источников проверки подлинности. В целях безопасности для обмена данными между Automation Config и AD/LDAP следует использовать канал с TLS-шифрованием. Подключение к серверу AD/LDAP с помощью доверенного стороннего сертификата поддерживается по умолчанию, но если используется частный или самозаверяющий центр сертификации, необходимо направить Automation Config в правильную цепочку доверия центра сертификации.

Примечание: Хотя при определении источника проверки подлинности LDAP в интерфейсе Automation Config можно деактивировать проверку сертификатов, крайне не рекомендуется делать это из-за возможности атак типа «человек посередине». Однако это может помочь при устранении неисправностей для проверки использования TLS перед установкой цепочки центра сертификации.

Для этой процедуры требуется сертификат (в кодировке PEM) от центра сертификации. Если в вашей организации используются промежуточные центры подписания, таких сертификатов может быть несколько. Сертификат в кодировке PEM выглядит следующим образом.

-----BEGIN CERTIFICATE-----
MIIGWzCCBUOgAwIBAgITfQAAAAJtLSuD8EkA/gAAAAAAAjANBgkqhkiG9w0BAQsF
[...bulk of certificate removed in this example...yours will
 have different content between the BEGIN and END lines...]
KqUEt+CIdecfc36aMgxWE8NdDf4/lj6FcuxdXHL+0ea5AySDxLbwWU6AsrRGJ3E=
-----END CERTIFICATE-----

Процедура

  1. Перечислите все сертификаты цепочки в одном файле .pem.
  2. Скопируйте этот файл в /etc/raas/raas-ca-certificates.pem.
  3. Чтобы пользователи raas могли читать файл, выполните следующую команду:
    chown raas:raas /etc/raas/raas-ca-certificates.pem
    chmod 600 /etc/raas/raas-ca-certificates.pem
  4. В разделе «Конфигурация драйвера AD/LDAP» в /etc/raas/raas добавьте следующее содержимое в раздел authers:. Если раздел authers уже существует, возможно, потребуется объединить его с этими параметрами, чтобы сохранить дополнительную конфигурацию LDAP, так как может существовать только один экземпляр authers:. Комментарии включены для ясности.
    # AD/LDAP driver configuration
     
    # Allowed LDAP log levels for "log_detail" below
    # - OFF       # nothing is logged
    # - ERROR     # only exceptions are logged
    # - BASIC     # library activity is logged, only operation result is shown
    # - PROTOCOL  # LDAPv3 operations are logged, sent requests and received responses are shown
    # - NETWORK   # socket activity is logged
    # - EXTENDED  # ldap messages are decoded and properly printed
     
    authers:
      ldap:
        log_detail: EXTENDED
        ssl:
          ciphers: TLSv1.2
          ca_cert: /etc/raas/raas-ca-certificates.pem
    Примечание: Если после успешной проверки подлинности log_detail: EXTENDED генерирует слишком много содержимого в /var/log/raas/raas, это значение можно изменить на ERROR или BASIC.
  5. Перезапустите сервер Automation Config с помощью systemctl restart raas. Используя systemctl status raas, убедитесь, что сервер работает и выполняет резервное копирование.
  6. В графическом интерфейсе Automation Config перейдите в раздел Администрирование > Проверка подлинности и выберите нужную конфигурацию LDAP. Убедитесь, что полное доменное имя в поле Узел совпадает с обычным именем или альтернативным именем субъекта в сертификате, представленном сервером AD/LDAP. Если оно не совпадает, Automation Config не сможет проверить сертификат по цепочке доверия центра сертификации.
  7. Проверьте значение в поле Порт. Официальный порт для LDAP с поддержкой TLS — 636, но если вы подключаетесь к Active Directory и ищете пользователей и группы в глобальном каталоге, то используется порт 3269.
  8. Поставьте флажки Включить SSL и Проверять сертификат, прокрутите форму до конца и нажмите Сохранить.
  9. Теперь можно проверить подключение, нажав кнопку Предварительный просмотр обновлений в нижней части формы. Если в поле предварительного просмотра отображаются группы и пользователи, то протокол TLS настроен правильно и сертификаты проверяются.

Устранение неполадок

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

  1. Проверьте журналы в /var/log/raas/raas. Если сервер LDAP/AD недоступен или при проверке сертификатов возникли проблемы, это должно быть зафиксировано в журнале. Остановите работу сервера Automation Config с помощью команды systemctl stop raas и удалите /var/log/raas/raas. Затем используйте tail -f или похожую команду, чтобы следовать журналу, и проверьте функцию предварительного просмотра LDAP.
  2. Возможно, в цепочке доверия центра сертификации есть ошибка. Сведения о сертификате с сервера AD или LDAP можно получить с помощью служебных программ командной строки openssl:
    openssl s_client -connect <fqdn.of.ldap.or.ad.server>:636 -showcerts
    В результатах этой команды указывается цепочка доверия, которая должна выглядеть следующим образом (где разделители <...> заменяются фактическими данными).
    ---
    Certificate chain
     0 s:CN = <fqdn.of.ldap.or.ad.server.example.com>
       i:<DC = com, DC = fqdn, DC = subdomain, CN = common-name-of-CA-certificate>
    -----BEGIN CERTIFICATE-----
    MIIGWzCCBUOgAwIBAgITfQAAAAJtLSuD8EkA/gAAAAAAAjANBgkqhkiG9w0BAQsF
    [... rest of server certificate is below ...]
  3. Используйте команду openssl, чтобы получить сведения о сертификатах цепочки доверия центра сертификации и убедиться, что сертификат центра сертификации соответствует цепочке в сертификате сервера LDAP. Если в цепочке несколько сертификатов, возможно, потребуется разбить их на отдельные файлы и выполнить следующую команду для каждого из них.
    # openssl x509 -noout -text -in /etc/raas/raas-ca-certificates.pem
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                2f:51:9b:4a:90:23:50:8a:40:58:41:c4:a6:67:08:d7
            Signature Algorithm: sha256WithRSAEncryption
            Issuer: <DC = com, DC = fqdn, DC = subdomain, CN = common-name-of-CA-certificate>
            Validity
                Not Before: Sep 29 19:48:39 2023 GMT
                Not After : Sep 29 19:58:39 2028 GMT
            Subject: <DC = com, DC = fqdn, DC = subdomain, CN = common-name-of-CA-certificate>
    [...]

    Если указанные выше сведения о субъекте и (или) издателе не совпадают с различающимися именами в цепочке сертификатов сервера LDAP, скорее всего, в цепочке возникнет ошибка.