4. Подключение LDAP-клиентов к сервису Secure LDAP

В этой статье объясняется, как подключить LDAP-клиент к сервису Secure LDAP.

Важно!

  • Ознакомьтесь с документацией поставщика услуг
    Инструкции в этой статье приведены только для справки и могут меняться. Помимо этих инструкций обязательно ознакомьтесь с документацией вашего поставщика, в которой содержится наиболее актуальное руководство по подключению клиента к сервису Secure LDAP.
  • Подготовительные действия
    Прежде чем следовать приведенным ниже инструкциям, убедитесь, что вы уже добавили клиент в сервис Secure LDAP, настроили разрешения на доступ, скачали сертификат клиента и ключ и, если необходимо, создали учетные данные для доступа.
  • Тестирование подключения
    Прежде чем выполнять указанные в этой статье действия, вы можете быстро проверить подключение с помощью таких инструментов, как ldapsearch, ADSI и ldp.exe. Их также можно использовать для устранения неполадок, если при подключении LDAP-клиента к сервису возникает ошибка. Инструкции приведены в статье Как выполнить тестирование подключения к сервису Secure LDAP.
  • Как завершить настройку
    После подключения LDAP-клиента, следуя инструкциям на этой странице, вам нужно будет завершить настройку, изменив статус сервиса на Включено в консоли администратора Google. Инструкции приведены в разделе 5. Переведите LDAP-клиентов в положение "Включено".

Содержание статьи

Эта статья состоит из следующих разделов:

В приведенных ниже инструкциях подразумевается, что файл ключа имеет название ldap-client.key, а файл сертификата – ldap-client.crt.

Общие инструкции по настройке

В этом разделе приведены общие инструкции по подключению LDAP-клиента к сервису Secure LDAP. Если в следующем разделе ваш LDAP-клиент не упоминается, найдите информацию о его настройке в документации к нему.

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

Чтобы подключить LDAP-клиент к сервису Secure LDAP:

  1. Настройте LDAP-клиент, выбрав облачный каталог в качестве сервера LDAP.
  2. Загрузите сертификат в LDAP-клиент.

    Сервис Secure LDAP использует клиентские сертификаты TLS в качестве основного механизма аутентификации. Чтобы начать загрузку сертификата в клиент LDAP, откройте настройки аутентификации или каталога клиента LDAP и введите данные из таблицы ниже.

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

В таблице ниже приведены основные сведения о подключении.

Hostname (Имя хоста)

ldap.google.com

Порты

389 – LDAP с использованием STARTTLS
636 – LDAP с использованием SSL/TLS (LDAPS)

Base DN (Базовое уникальное имя)

Доменное имя в формате DN. Пример:

dc=example,dc=com для example.com

Имя пользователя и пароль

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

Создайте имя пользователя и пароль в консоли администратора Google. Подробнее…

Файлы сертификата и ключа клиента

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

ВАЖНО! Некоторые клиенты LDAP, например Apache Directory Studio, не поддерживают загрузку цифровых сертификатов. Чтобы решить эту проблему, ознакомьтесь с разделом Как использовать stunnel в качестве прокси-сервера.

Инструкции по настройке для определенных клиентов LDAP

ADSI Edit (Windows)

Выполните указанные ниже действия.

  1. Выполните шаги 1–11 в разделе ldp.exe (Windows), чтобы установить сертификаты клиента.
  2. Выберите Action (Действия) > Connect to (Подключиться к).
  3. Укажите следующие настройки подключения:

    Название. Введите название подключения, например Google LDAP.
    Точка подключения: "Выберите или введите различающееся имя или контекст именования".
    Введите доменное имя в формате DN. Пример для example.com: dc=example,dc=com.

    Компьютер: "Выберите или введите домен или сервер"
    ldap.google.com

    Использовать шифрование на основе SSL: выбрано
  4. Нажмите Дополнительно… и укажите следующие данные:

    Указать учетные данные: выбрано.
    Имя пользователя: имя пользователя для доступа из консоли администратора.
    Пароль: пароль для доступа из консоли администратора.
    Номер порта: 636.
    Протокол: LDAP.
    Простая аутентификация привязки: выбрано.
  5. Нажмите кнопку ОК, а затем снова ОК.
  6. Если подключение установлено, на правой панели появятся данные Active Directory, указанные в базовом уникальном имени.

Apache Directory Studio

Для использования Apache Directory Studio необходимо установить подключение через Stunnel и указать учетные данные для доступа (имя пользователя и пароль), созданные в консоли администратора Google. Указав учетные данные и подключив Stunnel через порт localhost 1389, выполните следующие действия:

  1. Нажмите File (Файл) > New (Создать).
  2. Выберите LDAP Browser (Браузер LDAP) > LDAP Connection (Подключение LDAP).
  3. Нажмите Далее.
  4. Введите параметры подключения:

    Connection name (Название подключения): выберите название, например Google LDAP.
    Hostname (Имя хоста): localhost.
    Port (Порт): 1389 (или порт прослушивания/приема stunnel).
    Encryption method (Метод шифрования): No encryption (Без шифрования). Примечание. Если stunnel работает удаленно, рекомендуется использовать шифрование между stunnel и клиентом.
  5. Нажмите Далее.
  6. Укажите параметры аутентификации.

    Authentication Method (Способ аутентификации): Simple Authentication (Простая аутентификация).
    Bind DN or user (Уникальное имя привязки или пользователь): имя пользователя для доступа из консоли администратора.
    Bind password (Пароль привязки): пароль для доступа из консоли администратора.
  7. Нажмите Далее.
  8. Введите базовое уникальное имя.
    Это доменное имя в формате DN. Пример для example.com: dc=example,dc=com.
  9. Нажмите Готово.

Atlassian Jira

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

Важно! После выполнения приведенных ниже инструкций значение параметра keystorePassword может стать известным пользователям и оказаться доступным в файлах журнала. Примите меры, чтобы предотвратить несанкционированный доступ к локальной оболочке, файлу журнала и консоли администратора Google. Вместо описанных ниже инструкций можно использовать метод stunnel4 (см. раздел Необязательно: используйте stunnel в качестве прокси-сервера).

Примечание. В приведенных ниже инструкциях предполагается, что Jira установлена в каталоге /opt/atlassian/jira.

Как подключить клиент Atlassian Jira к сервису Secure LDAP

  1. Скопируйте на серверы Jira ключи и сертификат, созданный в консоли администратора Google при добавлении LDAP-клиента в сервис Secure LDAP.

    Пример:
    $ scp ldap-client.key user@jira-server:
  2. Преобразуйте сертификат и ключи в формат Java Keystore. В процессе потребуется вводить пароли. Чтобы упростить задачу, придумайте надежный пароль и каждый раз используйте его.

    $ openssl pkcs12 -export -out jira-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    $ sudo /opt/atlassian/jira/jre/bin/keytool -v -importkeystore -srckeystore jira-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore /opt/atlassian/jira/jira-ldap.jks -deststoretype JKS

  3. Настройте Jira так, чтобы использовалось созданное хранилище ключей. Чтобы добавить параметры, следуйте инструкциям на странице https://goo.gle/3ZQULXj.

    "-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password"

    В Linux:
    1. Откройте файл /opt/atlassian/jira/bin/setenv.sh.
    2. Найдите настройку JVM_SUPPORT_RECOMMENDED_ARGS.
    3. Добавьте "-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password", заменив "password" на пароль, выбранный выше.
  4. Перезапустите клиент Jira.

    $ /opt/atlassian/jira/bin/stop-jira.sh
    $ /opt/atlassian/jira/bin/start-jira.sh

  5. Войдите в веб-интерфейс Jira, используя учетные данные администратора.
    1. Выберите Настройки > Управление доступом. Чтобы открыть настройки, нажмите на значок шестеренки в правом верхнем углу экрана.
    2. Выберите User Directories (Каталоги пользователей).
    3. Нажмите Добавить каталог.
    4. Выберите тип LDAP.
    5. Нажмите Далее.
  6. Задайте следующие параметры:

    Name (Название)

    Google Secure LDAP

    Directory type (Тип каталога)

    OpenLDAP

    Hostname (Имя хоста)

    ldap.google.com

    Port (Порт)

    636

    Use SSL (Использовать SSL)

    Установите флажок

    Username (Имя пользователя)

    Создайте имя пользователя и пароль в консоли администратора Google. Подробнее…

    Password (Пароль)

    Создайте имя пользователя и пароль в консоли администратора Google. Подробнее…

    Base DN (Базовое уникальное имя)

    Укажите доменное имя в формате DN. Например, dc=example,dc=com для example.com.

    Additional User DN (Дополнительное уникальное имя пользователя)

    Необязателен. "ou=Users"

    Additional Group DN (Дополнительное уникальное имя группы)

    Необязателен. ou=Groups

    LDAP Permissions (Разрешения LDAP)

    Только для чтения

    Advanced Settings (Расширенные настройки)

    Не меняйте эти настройки

    User Schema Settings (Настройки для схемы пользователя) >
    User Name Attribute (Атрибут для имени пользователя)

    googleUid

    User Schema Settings (Настройки для схемы пользователя) >
    User Name RDN Attribute (Атрибут RDN для имени пользователя)

    uid

    Group Schema Settings (Настройки для схемы группы) >
    Group Object Class (Класс групповых объектов)

    groupOfNames

    Group Schema Settings (Настройки для схемы группы) >
    Group Object Filter (Фильтр групповых объектов)

    (objectClass=groupOfNames)

    Membership Schema Settings (Настройки для схемы участия) >
    Group Members Attribute (Атрибут для участников группы)

    member

    Membership Schema Settings (Настройки для схемы участия) >
    Use the User Membership Attribute (Использовать атрибут участника для пользователя)

    Установите флажок
  7. Предоставьте доступ группе.

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

    Чтобы предоставить группе доступ, выполните следующие действия:
    1. Нажмите Settings (Настройки) > Applications (Приложения) > Application access (Доступ к приложениям).
    2. В текстовом поле Выбрать группу введите название группы Google, которой вы хотите предоставить доступ к Jira.

CloudBees Core/Jenkins

Инструкции по подключению CloudBees Core к сервису Secure LDAP можно найти в этой статье.

FreeRADIUS

Выполните указанные ниже действия.

  1. Установите и настройте FreeRADIUS в каталоге /etc/freeradius/3.0/.

    После установки FreeRADIUS можно добавить конфигурацию LDAP, установив плагин freeradius-ldap.

    $ sudo apt-get install freeradius freeradius-ldap
  2. Скопируйте файлы ключа и сертификата LDAP в папку FreeRADIUS. Пути к файлам должны выглядеть так: /etc/freeradius/3.0/certs/ldap-client.key (ключ) и /etc/freeradius/3.0/certs/ldap-client.crt (сертификат).

    $ chown freeradius:freeradius
    /etc/freeradius/3.0/certs/ldap-client.*
    $ chmod 640 /etc/freeradius/3.0/certs/ldap-client.*

  3. Включите модуль LDAP.

    $ cd /etc/freeradius/3.0/mods-enabled/
    $ ln -s ../mods-available/ldap ldap

  4. Внесите изменения в ключ /etc/freeradius/3.0/mods-available/ldap.
    1. ldap->server = 'ldaps://ldap.google.com:636'
    2. identity = имя пользователя для доступа к приложению
    3. password = пароль для доступа к приложению
    4. base_dn = 'dc=domain,dc=com'
    5. tls->start_tls = no
    6. tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
    7. tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
    8. tls->require_cert = 'allow'
    9. Закомментируйте все поля в строке навигации, соответствующей разделу "ldap -> post-auth -> update".
  5. Измените файл /etc/freeradius/3.0/sites-available/default.
    Это действие приведет к изменению подключения клиента FreeRadius. Если вы не используете клиент по умолчанию, обновите соответствующий клиент (внутренний туннель или любой другой настроенный вами клиент).
    1. Измените раздел authorize, добавив внизу следующий блок после оператора протокола аутентификации с помощью пароля (PAP):

      if (User-Password) {
      update control {
      Auth-Type := ldap
      }
      }

    2. В разделе authorize включите LDAP, удалив знак "-" перед ним.

      #
      # Модуль ldap считывает пароли из базы данных LDAP.
      ldap
    3. Измените раздел authenticate, отредактировав блок Auth-Type LDAP следующим образом:

      # Auth-Type LDAP {
      ldap
      # }

    4. Измените раздел authenticate, отредактировав блок Auth-Type PAP следующим образом:

      Auth-Type PAP {
      # pap
      ldap
      }

GitLab

Инструкции по подключению GitLab к сервису Secure LDAP приведены в этой статье.

Itopia/Ubuntu

Инструкции по подключению Itopia/Ubuntu к сервису Secure LDAP можно найти в Configuring Google Cloud Identity LDAP on Ubuntu 16.04 for user logins.

Ivanti/LanDesk

Выполните указанные ниже действия.

  1. На веб-сервере Ivanti откройте файл OpenLDAPAuthenticationConfiguration.xml или OpenLDAPSSLAuthenticationConfiguration.xml в текстовом редакторе в обеих следующих папках:

    C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework и C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess (где servicedesk – это название экземпляра).
  2. Измените значение <Server> на ldap.google.com.
  3. Измените значение <Port> на порт 3268 для обычного текста с включенным параметром StartTLS и на 3269 для порта SSL/TLS (по умолчанию используется порт 389 для обычного текста или 636 для SSL/TLS).
  4. Укажите в качестве значения <TestDN> доменное имя в формате DN. Пример для example.com: dc=example,dc=com.
  5. В файлы ..ProgramData\LANDesk\ServiceDesk\ServiceDesk.Framework\tps.config и ..ProgramData\LANDesk\ServiceDesk\WebAccess\tps.config добавьте строку:

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPLogon.OpenLDAPAuthenticationProvider" />

    или строку:

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPSSLLogon.OpenLDAPSSLAuthenticationProvider" />
  6. В Центре конфигураций Ivanti (Ivanti Configuration Center) откройте требуемый экземпляр.
  7. Рядом с приложением Service Desk Framework нажмите Edit (Изменить).
    Откроется диалоговое окно Edit Application (Изменить приложение) для приложения Service Desk Framework.
  8. В группе Configuration parameters (Параметры конфигурации) выберите Explicit only (Только определенные) в списке Logon policy (Правило входа), а затем нажмите ОК.
  9. Рядом с приложением "Веб-доступ" нажмите Изменить.
    Откроется диалоговое окно Edit Application (Изменить приложение) для приложения Web Access.
  10. В группе Параметры конфигурации выберите Только явный в списке Правила входа в систему и нажмите ОК.

При входе используйте пароль сети пользователя связанного домена.

Регистрация исключений, возникающих при аутентификации сервера LDAP

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

Как включить регистрацию исключений, возникающих при аутентификации сервера LDAP

  1. Откройте в текстовом редакторе требуемый файл конфигурации аутентификации в формате XML:

    DirectoryServiceAuthenticationConfiguration.xml, OpenLDAPAuthenticationConfiguration.xml или OpenLDAPSSLAuthenticationConfiguration.xml
  2. Измените строку:

    <ShowExceptions>false</ShowExceptions>
    на
    <ShowExceptions>true</ShowExceptions>
  3. Сохраните изменения.

Ldp.exe (Windows)

Выполните указанные ниже действия.

  1. Преобразуйте сертификат и ключи в один файл формата PKCS12. В командной строке введите следующее:

    Команды для macOS или Linux:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    Введите пароль, чтобы зашифровать файл выходных данных.

    Команды для Windows:

    $ certutil -mergepfx ldap-client.crt ldap-client.p12

    Важно! Оба файла (<CERT_FILE>.crt и <CERT_FILE>.key) должны находиться в одном каталоге. и иметь одинаковое название, различаясь только расширениями (key и crt). В этом примере используются названия ldap-client.crt и ldap-client.key.

  2. Откройте панель управления.
  3. В окне поиска выполните поиск по запросу "сертификат" и нажмите Управление сертификатами пользователей.
  4. Выберите Действие > Все задачи > Импорт
  5. Нажмите Текущий пользователь, а затем Далее.
  6. Нажмите Обзор
  7. В раскрывающемся списке File type (Тип файла) в правом нижнем углу диалогового окна выберите Personal Information Exchange (Файлы обмена личной информацией) (*.pfx;*.p12).
  8. Выберите файл ldap-client.p12, созданный на шаге 2, нажмите Открыть, а затем Далее.
  9. Введите пароль из шага 2 и нажмите Далее.
  10. Выберите хранилище сертификатов Личное, нажмите Далее, а затем Готово.
  11. Запустите файл Ldp.exe.
  12. Выберите Подключение > Подключиться….
  13. Укажите следующие данные для подключения:

    Сервер: ldap.google.com
    Порт: 636
    Без подключения: снимите флажок
    SSL: установите флажок
  14. Нажмите ОК.
  15. Откройте View (Представление) > Tree (Дерево).
  16. Введите базовое уникальное имя. Это доменное имя в формате DN. Пример для example.com: dc=example,dc=com.
  17. Нажмите ОК.
  18. В случае успешного подключения программа LDP.exe покажет на правой панели данные Active Directory, например все атрибуты в базовом уникальном имени.

Netgate/pfSense

Инструкции по подключению Netgate/pfSense к сервису Secure LDAP можно найти в Configuring Google Cloud Identity as an Authentication Source.

OpenLDAP/ldapsearch (Linux)

Для доступа к каталогу LDAP из командной строки можно использовать команду OpenLDAP ldapsearch.

Предположим, что файлы сертификата и ключа называются ldap-client.crt и ldap-client.key, домен – example.com, а имя пользователя – jsmith.

$ LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -H ldaps://ldap.google.com -b dc=example,dc=com '(uid=jsmith)'

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

ldapsearch (macOS)

Выполните указанные ниже действия.

  1. Преобразуйте сертификат и ключи в один файл формата PKCS12. В командной строке введите следующее:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    Введите пароль, чтобы зашифровать файл выходных данных.
  2. Нажмите на значок в правом верхнем углу строки меню и введите Доступ к цепочке ключей.
  3. Откройте приложение "Связка ключей" и в списке слева нажмите Система.
  4. В верхней левой части строки меню нажмите Файл и выберите Импортировать объекты.
  5. Перейдите к папке, в которой находится сгенерированный файл ldap-client.p12, выберите его и нажмите Открыть.
    При необходимости введите пароль.
    В списке сертификатов системной связки ключей должен появиться сертификат с названием LDAP Client.
  6. Нажмите на стрелку рядом с сертификатом LDAP Client. Ниже будет указан закрытый ключ.
    1. Дважды нажмите на него.
    2. В диалоговом окне выберите вкладку Access Control (Контроль доступа) и нажмите + в левом нижнем углу.
    3. В открывшемся окне нажмите Command + Shift + G, чтобы открыть новое окно, а затем замените существующий текст на /usr/bin/ldapsearch.

    4. Нажмите Перейти.

      Откроется окно с выделенным параметром ldapsearch.

    5. Нажмите Добавить.

    6. Нажмите Сохранить изменения и введите пароль, если появится запрос.

      Теперь вы готовы получить доступ к вашему LDAP-каталогу из командной строки, используя команду OpenLDAP ldapsearch.

  7. Предположим, что файл ldap-client.p12, который вы импортировали в связку ключей ранее, называется LDAP Client, ваш домен – example.com, а имя пользователя – jsmith. Введите следующее:

    $ LDAPTLS_IDENTITY="LDAP Client" ldapsearch -H ldaps://ldap.google.com:636 -b dc=example,dc=com '(uid=jsmith)'

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

OpenVPN (версия для сообщества)

Выполните указанные ниже действия.

  1. Установите и настройте OpenVPN. После этого перейдите на страницу настроек в OpenVPN.

    В этой статье не рассматриваются общие настройки VPN. Задав конфигурацию VPN, настройте аутентификацию и авторизацию пользователей через LDAP. В частности, потребуется установить плагин openvpn-auth-ldap.

    $ sudo apt-get install openvpn openvpn-auth-ldap
  2. Скопируйте файлы ключа и сертификата LDAP в папку OpenVPN. Пути к копиям должны выглядеть так: /etc/openvpn/ldap-client.key (ключ) и /etc/openvpn/ldap-client.crt (сертификат).
  3. Создайте файл /etc/openvpn/auth-ldap.conf со следующим содержимым (предполагается, что example.com – это доменное имя):

    <LDAP>
    URL ldaps://ldap.google.com:636 #
    Timeout 15
    TLSEnable false
    TLSCACertDir /etc/ssl/certs
    TLSCertFile /etc/openvpn/ldap-client.crt
    TLSKeyFile /etc/openvpn/ldap-client.key
    </LDAP>
    <Authorization>
    BaseDN "dc=example,dc=com"
    SearchFilter "(uid=%u)" # (or choose your own LDAP filter for users)
    RequireGroup false
    </Authorization>

  4. Откройте файл конфигурации OpenVPN (как правило, ему присваивается имя наподобие /etc/openvpn/server.conf). В конце файла добавьте следующие строки:

    plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
    verify-client-cert optional

  5. Перезапустите сервер OpenVPN.

    $ sudo systemctl restart openvpn@server
  6. Настройте VPN-клиенты так, чтобы они использовали имена пользователей и пароли. Например, в конфигурации клиента OpenVPN добавьте auth-user-pass в конец файла конфигурации клиента OpenVPN и запустите клиент OpenVPN:

    $ openvpn --config /path/to/client.conf
  7. Следуйте инструкциям по использованию stunnel в качестве прокси-сервера.

Сервер OpenVPN Access Server (коммерческая версия)

Инструкции по подключению OpenVPN Access Server к сервису Secure LDAP приведены в этой статье.

PaperCut MF и NG

Инструкции по подключению PaperCut к сервису Secure LDAP можно найти в этой статье.

Puppet Enteprise

Инструкции по подключению Puppet Enterprise к сервису Secure LDAP можно найти в этой статье.

Браузер Softerra LDAP Browser

Важно! Прежде чем начинать настройку, убедитесь, что у вас установлен браузер Softerra LDAP Browser версии 4.5 (4.5.19808.0) или более поздней. Подробнее…

Выполните указанные ниже действия.

  1. Преобразуйте сертификат и ключи в один файл формата PKCS12. В командной строке введите следующее:

    Команды для macOS или Linux:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    Введите пароль, чтобы зашифровать файл выходных данных.

    Команды для Windows:

    $ certutil -mergepfx ldap-client.crt ldap-client.p12

    Важно! Оба файла (<CERT_FILE>.crt и <CERT_FILE>.key) должны находиться в одном каталоге. и иметь одинаковое название, различаясь только расширениями (key и crt). В этом примере используются названия ldap-client.crt и ldap-client.key.

  2. В браузере Softerra LDAP Browser установите пару ключей.
    1. Откройте Tools (Инструменты) > Certificate Manager (Диспетчер сертификатов).
    2. Нажмите Import (Импорт).
    3. Нажмите Next (Далее).
    4. Нажмите Browse (Обзор).
    5. В раскрывающемся списке Тип файла в правом нижнем углу диалогового окна выберите Обмен персональной информацией (*.pfx;*.p12).
    6. Выберите файл ldap-client.p12 из шага 2 выше.
    7. Нажмите Open (Открыть), а затем Next (Далее).
    8. Введите пароль из шага 2 выше и нажмите Next (Далее).
    9. Выберите хранилище сертификатов Личные.
    10. Нажмите Далее.
    11. Нажмите Готово.
  3. Добавьте профиль сервера.
    1. Выберите Файл > Создать > Новый профиль….
    2. Введите название профиля, например Google LDAP.
    3. Нажмите Далее.

      Введите следующие данные:

      Хост: ldap.google.com
      Порт:
      636
      Базовое уникальное имя: доменное имя в формате уникального имени. Пример для example.com: dc=example,dc=com.
      Use secure connection (SSL) (Использовать безопасное подключение SSL): установите флажок.
    4. Нажмите Далее.
    5. Выберите External (SSL Certificate) (Внешний, сертификат SSL).
    6. Нажмите Далее.
    7. Нажмите Готово.

Sophos Mobile

Инструкции по подключению Sophos Mobile к сервису Secure LDAP можно найти в этой статье.

Splunk

Для работы с сервисом Secure LDAP нужно использовать Splunk версии 8.1.4 или более поздней. Прежние версии Splunk (например, 8.1.3) могут выполнять ненужные запросы к серверу LDAP, в результате чего вы быстро исчерпаете квоту. Подробнее об устранении неполадок с платформой Splunk версии 8.1.3…

Выполните указанные ниже действия.

  1. Скопируйте файлы ключа и сертификата LDAP в следующие файлы: /home/splunk/splunkadmin/etc/openldap/certs/ldap-client.key (ключ) и /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt (сертификат).

    $ cat /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.key > /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

    $ sudo chown $(splunkuser):$(splunkuser) /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

    $ sudo chmod 644 /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

  2. Добавьте в файл ldap.conf следующие конфигурации:

    ssl start_tls
    TLS_REQCERT never
    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem

  3. Добавьте следующие конфигурации в файл пользователя /home/splunkadmin/.ldaprc:

    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

  4. Добавьте стратегию LDAP с помощью веб-интерфейса Splunk. Укажите следующие данные и нажмите Сохранить:

Name (Название)

Google Secure LDAP

Хост

ldap.google.com

Port (Порт)

636

SSL включен

Установите флажок

Порядок подключения

1

Bind DN

Укажите учетные данные, созданные в консоли администратора Google.

Пароль для уникального имени

Укажите учетные данные, созданные в консоли администратора Google.

Base DN (Базовое уникальное имя)

Укажите доменное имя в формате DN. Пример для домена example.com: dc=example,dc=com.

User base filter (Фильтр пользовательской базы)

Укажите фильтр пользовательской базы для класса объектов, чтобы отфильтровать пользователей с его помощью.

Атрибут для имени пользователя

uid

Атрибут "Настоящее имя"

displayname

Атрибут электронной почты

mail

Атрибут сопоставления групп

dn

Базовое уникальное имя группы

Укажите доменное имя в формате DN. Пример для домена example.com: ou=Groups,dc=example,dc=com.

Фильтр поиска статических групп

Укажите фильтр поиска статических групп для класса объектов, чтобы отфильтровать статические группы с его помощью.

Атрибут названия группы

cn

Статический атрибут участника

member

SSSD (Red Hat Enterprise и CentOS)

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

Чтобы подключить клиент SSSD на Red Hat 8 или CentOS 8 к сервису Secure LDAP:

  1. Добавьте клиент SSSD к сервису Secure LDAP:
    1. Откройте консоль администратора Google и нажмите Приложения > LDAP > Добавить клиент.
      Используйте для входа корпоративный аккаунт, а не личный аккаунт Gmail.
    2. Введите сведения о клиенте и нажмите Продолжить.
    3. Задайте настройки доступа:
      Проверка учетных данных пользователя – "Весь домен".
      Чтение информации о пользователе – "Весь домен".
      Чтение информации о группе – включено.
    4. Нажмите Добавление LDAP-клиента.
    5. Скачайте сертификат.
    6. Выберите Перейти на страницу сведений о клиенте.
    7. Измените значение параметра "Статус сервиса" на Включено.
  2. Установите зависимости:

    dnf install openldap-clients sssd-ldap
    install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap


    распакуйте ZIP-файл сертификата и скопируйте файлы .crt и .key в /etc/sssd/ldap
  3. При желании выполните проверку с помощью ldapsearch:

    LDAPTLS_REQCERT=never \
    LDAPTLS_KEY=Google.key \
    LDAPTLS_CERT=Google.crt \
    ldapsearch -H ldaps://ldap.google.com:636/ \
    -b dc=example,dc=com \
    -D usertoverify@example.com \
    -W \
    '(mail=usertoverify@example.com)' \
    mail dn


    Введите пароль Google пользователя, когда появится запрос.

    Примечание. У пользователя должна быть лицензия Google Workspace Enterprise или Cloud Identity Premium.

  4. Создайте файл /etc/sssd/sssd.conf со следующим содержимым:

    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /etc/sssd/ldap/Google.crt
    ldap_tls_key = /etc/sssd/ldap/Google.key
    ldap_tls_reqcert = never
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID

  5. Обновите разрешения и ярлыки SELinux:

    chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    restorecon -FRv /etc/sssd

  6. Перезапустите SSSD:

    systemctl restart sssd
  7. Выполните проверку:

    Подключитесь к серверу через SSH:

    ssh -l user@example.com {HOSTNAME}

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

  1. Проверьте версию SSSD (она должна быть не ниже 1.15.2):

    # sssd --version
    2.2.3

  2. На RHEL/CentOS (и любом дистрибутиве с принудительным использованием SELinux) файлы конфигурации SSSD, сертификата и ключа должны находиться в каталоге, к которому есть доступ у пользователей с ролью sssd_conf_t:

    # egrep "object_r:sssd_conf_t" /etc/selinux/targeted/contexts/files/file_contexts

    Проверьте журнал /var/log/audit/audit.log на наличие сообщений о блокировках AVC.

  3. Убедитесь, что в файле /etc/nsswitch.conf для объектов passwd, shadow, group и netgroup указано значение "sss":

    passwd: files sss
    shadow: files sss
    group: files sss
    netgroup: files sss


    В этом случае локальные файлы будут иметь приоритет над пользователями LDAP.
  4. Проверьте файл /var/log/sssd.conf на наличие ошибок конфигурации:

    Пример
    [sssd] [sss_ini_add_snippets] (0x0020): Config merge error: File /etc/sssd/sssd.conf did not pass access check. Skipping. (Ошибка объединения конфигурации: файл /etc/sssd/sssd.conf не прошел проверку доступа и будет пропущен.)

    Действие. Измените права доступа к файлу .conf на 600.

    Пример
    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_groups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. Check for typos. (Атрибут ldap_groups_use_matching_rule_in_chain запрещен в разделе domain/{DOMAIN}. Убедитесь, что данные не содержат опечаток.)

    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_initgroups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. Check for typos. (Атрибут ldap_initgroups_use_matching_rule_in_chain запрещен в разделе domain/{DOMAIN}. Убедитесь, что данные не содержат опечаток.)

    Необходимое действие: удалите из sssd.conf неподдерживаемые расширения LDAP для сопоставления групп.

  5. Проверьте файл /var/log/sssd_{DOMAIN}.log на наличие ошибок, связанных с LDAP, сетью или аутентификацией.

    Пример

    [sssd[be[example.com]]] [sss_ldap_init_sys_connect_done] (0x0020): ldap_install_tls failed: [Connect error] [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (self signed certificate)] (Не удалось проверить самозаверяющий сертификат)

    Необходимое действие: добавьте "ldap_tls_reqcert = never" в файл sssd.conf.

    Чтобы повысить уровень детализации журнала ошибок, добавьте "debug_level = 9" в раздел доменов файла sssd.conf и запустите sssd заново.

SSSD (другие дистрибутивы Linux)

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

Как подключить клиент SSSD к сервису Secure LDAP

  1. Установите SSSD версии 1.15.2 или более поздней.

    $ sudo apt-get install sssd
  2. Предположим, что файлы сертификата и ключа называются /var/ldap-client.crt и /var/ldap-client.key, а домен – example.com. Отредактируйте файл /etc/sssd/sssd.conf следующим образом:


    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /var/ldap-client.crt
    ldap_tls_key = /var/ldap-client.key
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID
    ldap_groups_use_matching_rule_in_chain = true
    ldap_initgroups_use_matching_rule_in_chain = true

  3. Измените владельца и разрешения для файла конфигурации:

    $ sudo chown root:root /etc/sssd/sssd.conf
    $ sudo chmod 600 /etc/sssd/sssd.conf

  4. Перезапустите SSSD:

    $ sudo service sssd restart

Примечание. Если вы используете модуль SSSD на компьютерах Linux без внешних IP-адресов в Google Compute Engine, вы по-прежнему можете подключиться к сервису Secure LDAP, если у вас включен внутренний доступ к сервисам Google. Подробнее о настройке доступа к сервисам Google с частным IP-адресом.

macOS

Выполните перечисленные ниже действия, чтобы подключить клиент macOS для аутентификации аккаунтов пользователей с помощью сервиса Secure LDAP.

Google Workspace Migrate: системные требования

  • macOS Catalina 10.15.4 или более поздней версии.
  • Для выполнения шага 1 этапа подготовки необходим идентификатор суперадминистратора Google.
  • Для настройки необходимы права локального администратора.

Содержание:

Этап подготовки

Ниже описано, как вручную настроить и проверить аутентификацию macOS с помощью сервиса Secure LDAP.

Шаг 1. Добавьте macOS в качестве LDAP-клиента в консоли администратора Google

Инструкции приведены в статье Как добавить LDAP-клиентов. Также вы можете посмотреть демонстрацию Secure LDAP. В ходе этого процесса вы также скачаете автоматически созданный сертификат клиента TLS.

Шаг 2. Импортируйте сертификат в системную связку ключей

  1. Скопируйте сертификат (ZIP-архив, скачанный на шаге 1) и ключ на компьютер macOS.
    Совет. Распакуйте файл, чтобы найти файлы сертификата и ключа.
  2. Импортируйте пару ключей в системную связку ключей:
    1. Преобразуйте ключ и сертификат в файл PKCS 12 (P12). Выполните в терминале следующую команду:

      openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key

      Совет. Запишите название файла .p12.

      Система предложит вам создать пароль, чтобы зашифровать файл P12.

    2. Откройте приложение Связка ключей.

    3. Нажмите на связку ключей Система.

    4. Нажмите Файл > Импортировать объекты.

    5. Выберите файл ldap-client.p12, созданный ранее.

    6. При необходимости введите пароль администратора, чтобы разрешить изменение системной связки ключей.

    7. Введите созданный ранее пароль, чтобы расшифровать файл P12.

      Примечание. В списке ключей должен появиться новый сертификат и связанный с ним закрытый ключ. Сертификат может называться LDAP Client. Запишите название сертификата, чтобы использовать его на следующем шаге.
    8. Выполните шаг 6 в разделе ldapsearch (macOS) этой статьи, чтобы настроить контроль доступа для частного ключа и добавить указанные ниже приложения. Если секретный ключ не отображается в категории Все объекты, попробуйте перейти в категорию Мои сертификаты и найти нужный секретный ключ, развернув соответствующий сертификат.

      Как сказано в инструкциях, приложение ldapsearch необходимо только для устранения неисправностей. Оно не предназначено для других целей. Обычно он удаляется до того, как пользователи получают доступ к macOS.

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

      /System/Library/CoreServices/Applications/Directory Utility
      /usr/libexec/opendirectoryd
      /usr/bin/dscl
  3. Добавьте строку в файл /etc/openldap/ldap.conf, убедившись, что "LDAP Client" – это то же название сертификата, которое показывается в приложении "Связка ключей" macOS после импорта файла .p12 (название берется из общего названия субъекта X.509 сгенерированного сертификата):

    sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'

Шаг 3. Настройте устройство для аутентификации в каталоге Google

Откройте приложение Служба каталогов, чтобы создать новый узел каталога LDAP:

  1. Нажмите на значок замка, чтобы внести изменения и ввести пароль.
  2. Выберите LDAPv3 и нажмите на значок карандаша, чтобы изменить настройки.
  3. Нажмите Создать.
  4. В поле "Имя сервера" введите ldap.google.com, выберите Шифровать с помощью SSL и нажмите Вручную.
  5. Выберите новое название сервера и нажмите Изменить.
  6. Введите понятное название, например Безопасный LDAP Google.
  7. Выберите Шифровать с помощью SSL и убедитесь, что для порта задано значение 636.
  8. Перейдите на вкладку Поиск и соответствия.
    1. В раскрывающемся списке Access this LDAPv3 server using (Доступ к этому серверу LDAPv3 с помощью) выберите RFC2307.
    2. После запроса укажите информацию о домене в поле Суффикс базы поиска. Например, для доменного имени zomato.com введите dc=zomato,dc=com.
    3. Нажмите ОК.
    4. Настройте атрибуты в записи типа Пользователи:
      1. В разделе Типы записей и атрибуты выберите Пользователи и нажмите кнопку +.
      2. Во всплывающем окне выберите Типы атрибутов, нажмите Сгенерированный идентификатор и нажмите ОК, чтобы закрыть всплывающее окно.

        GeneratedUID должен отображаться в разделе "Пользователи" после того, как вы его развернете.
      3. Нажмите на GeneratedUID и выберите значок + в поле справа.
      4. Введите apple-generateduid в текстовое поле и нажмите клавишу ВВОД.
      5. В узле Users (Пользователи) нажмите на атрибут NFSHomeDirectory.
      6. На экране справа измените значение атрибута на #/Users/$uid$.
      7. Нажмите ОК и введите пароль, чтобы сохранить изменения.
  9. На экране Служба каталогов создайте новую конфигурацию LDAP:
    1. Перейдите на вкладку Правила поиска.
    2. Нажмите на значок замка, чтобы внести изменения, и укажите пароль текущего пользователя.
    3. В раскрывающемся списке выберите Собственный путь вместо Путь поиска.
    4. Откройте вкладку Аутентификация и нажмите на значок +.
    5. Выберите /LDAPv3/ldap.google.com в списке доменов каталога и нажмите Добавить.
    6. Нажмите кнопку Применить и введите пароль администратора, если потребуется.
  10. Выполните перечисленные ниже четыре команды, чтобы отключить механизмы аутентификации DIGEST-MD5, CRAM-MD5, NTLM и GSSAPI SASL. macOS будет использовать простое подключение для аутентификации с помощью сервиса Google Secure LDAP:

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string DIGEST-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string CRAM-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

  11. Перезагрузите компьютер, чтобы перезапустить конфигурацию OpenDirectory.

Шаг 4. Создайте мобильный аккаунт (для входа в офлайн-режиме)

Любой пользователь Google Workspace и Cloud Identity может выполнить вход с помощью сетевого аккаунта (аккаунта Google), указав свое имя пользователя и пароль. Для этого необходимо подключение к сети. Если нужна возможность выполнять вход независимо от наличия подключения к сети, Мобильный аккаунт позволяет входить в систему с помощью имени пользователя и пароля сетевого аккаунта (аккаунта Google), даже если вы не подключены к сети. Подробнее о том, как создать и настроить мобильные аккаунты на устройстве Mac…

Чтобы создать мобильный аккаунт для пользователей Secure LDAP:

  1. Выполните следующую команду, чтобы подключиться к серверу Secure LDAP и настроить домашний путь и мобильные аккаунты:

    sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v

    Совет. Замените $uid частью адреса электронной почты, связанной с аккаунтом Google пользователя, до символа @. Например, jsmith – это часть имени пользователя в адресе jsmith@solarmora.com.

  2. Когда появится запрос на имя пользователя администратора SecureToken, введите имя пользователя администратора, а затем пароль. Это добавит $uid в FileVault. Это необходимо, если диск macOS зашифрован.

Шаг 5. Настройте параметры экрана входа (необязательно)

  1. Выберите Системные настройки > Пользователи и группы > Параметры входа в левом нижнем углу.
  2. Нажмите на замок и укажите учетные данные администратора.
  3. В раскрывающемся списке Показывать окно входа как выберите Имя и пароль.

Шаг 6. Перезагрузите устройство и войдите в аккаунт

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

Этап развертывания

Ниже описано, как автоматизировать настройку устройств для ваших пользователей. Выполните шаги 1 и 2 ниже на том же устройстве с macOS, на котором вы вручную настроили конфигурацию на этапе подготовки.

Шаг 1. Создайте профиль Mac с сертификатом, используя Apple Configurator 2

  1. Установите приложение Apple Configurator 2 на компьютере, на котором вы вручную настроили аутентификацию macOS с использованием Secure LDAP.
  2. Откройте Apple Configurator 2 и создайте профиль. В разделе Certificate (Сертификат) нажмите кнопку Configure (Настроить) и импортируйте ранее сгенерированный файл P12.

    Примечание . Убедитесь, что у этого файла есть пароль. Введите пароль в разделе Password (Пароль).

  3. Сохраните профиль.
  4. Если в вашем устройстве установлен процессор M1 или M2, сразу перейдите к шагу 5. Откройте этот профиль в любом текстовом редакторе и добавьте следующие строки в первый тег <dict>:

    <key>PayloadScope</key>
    <string>System</string>


    Это необходимо, так как Apple Configurator пока не поддерживает профили для macOS.
  5. Во второй тег <dict> рядом с данными сертификата добавьте следующий текст:

    <key>AllowAllAppsAccess</key>
    <true/>


    Благодаря этому доступ к сертификату получат все приложения.

Шаг 2. Преобразуйте файл конфигурации каталога (PLIST) в формат XML

На этом этапе вы извлекаете все настройки, заданные вручную на шаге 3 подготовительной фазы, в XML-файл. Этот файл и профиль Mac, созданный на шаге 1, можно использовать для автоматической настройки других устройств с macOS.

  1. Скопируйте /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist на рабочий стол или в другое место.
  2. Преобразуйте этот файл в формат XML, чтобы его можно было открыть в любом текстовом редакторе. Выполните в терминале следующую команду:

    sudo plutil -convert xml1 <path>/ldap.google.com.plist

    Вы можете получить доступ к файлу как <path>/ldap.google.com.plist.
  3. Измените разрешения на доступ к вышеуказанному файлу, чтобы вы могли открыть XML-файл. Убедитесь, что он не пустой.

Шаг 3. Создайте скрипт Python для автоматизации настройки на устройствах конечных пользователей

Скопируйте скрипт Python, который приведен ниже, и сохраните его в виде файла Python (формат PY).

Примечание. Этот пример скрипта предназначен для Python версии 3.10.x. Он предоставляется без каких-либо гарантий. Компания Google не оказывает поддержку для таких скриптов.

Ldap_python_config.py

#!/usr/bin/python
from OpenDirectory import ODNode, ODSession, kODNodeTypeConfigure
from Foundation import NSMutableData, NSData

import os
import sys

# Reading plist
GOOGLELDAPCONFIGFILE = open(sys.argv[1], "r")
CONFIG = GOOGLELDAPCONFIGFILE.read()
GOOGLELDAPCONFIGFILE.close()

# Write the plist
od_session = ODSession.defaultSession()
od_conf_node, err = ODNode.nodeWithSession_type_error_(od_session, kODNodeTypeConfigure, None)
request = NSMutableData.dataWithBytes_length_(b' '*32, 32)
request.appendData_(NSData.dataWithBytes_length_(str.encode(CONFIG), len(CONFIG)))
response, err = od_conf_node.customCall_sendData_error_(99991, request, None)

# Edit the default search path and append the new node to allow for login
os.system("dscl -q localhost -append /Search CSPSearchPath /LDAPv3/ldap.google.com")
os.system("bash -c 'echo -e \"TLS_IDENTITY\tLDAP Client\" >> /etc/openldap/ldap.conf' ")

Шаг 4. Настройте устройства конечных пользователей автоматически

На других устройствах macOS, которые вы хотите настроить, выполните следующие действия:

  1. Скопируйте на устройство файл профиля Mac, сгенерированный на шаге 1, XML-файл конфигурации, созданный на шаге 2, и скрипт Python из шага 3.
  2. Чтобы установить необходимую зависимость для скрипта, выполните следующую команду:
    python3 -m pip install pyobjc-framework-opendirectory
  3. Выполните следующую команду:
    sudo python </path/to/saved_python_script> </path/to/ldap.google.com.plist generated in step 2>
  4. Чтобы импортировать сертификаты в системную связку ключей macOS, нажмите дважды на файл профиля Mac, сгенерированный на шаге 1, и при появлении соответствующего запроса укажите учетные данные локального администратора macOS. Затем вам будет предложено ввести пароль файла P12, который вы задали на этапе подготовки.
  5. Перезагрузите компьютер macOS.
  6. Создайте мобильные аккаунты, как описано на шаге 4 этапа подготовки, и при необходимости задайте дополнительные настройки, описанные на шаге 5 этапа подготовки.

Ограничения и рекомендации

  • Если пользователь входит в macOS с помощью учетных данных Google, его имя пользователя аккаунта Workspace должно отличаться от идентификатора профиля в macOS. В противном случае вход выполнить не получится.
  • Когда пользователь начнет выполнять вход в macOS с использованием учетных данных Google, необходимо пройти процедуру управления паролем пользователя (сброс или восстановление) на сайте Google (например, на странице myaccount.google.com или в консоли администратора Google). Если вы используете стороннее решение для управления паролями, убедитесь, что последний пароль синхронизирован с Google.
  • Если администратор создает нового пользователя или сбрасывает пароль существующего пользователя с включенным параметром Запросить изменение пароля при следующем входе, пользователь не сможет войти в систему на устройстве Mac, используя временный пароль, заданный администратором.
    Временное решение. Пользователю необходимо войти в аккаунт Google на другом устройстве (например, мобильном или другом компьютере), задать постоянный пароль, а затем войти в macOS, используя новый пароль.
  • Компьютер Mac должен быть подключен к интернету, чтобы на нем можно было открыть страницу ldap.google.com при первом входе в аккаунт после описанной выше процедуры настройки. При последующих входах доступ к интернету не понадобится, если вы настроили мобильный аккаунт.
  • Интеграция Google Secure LDAP с macOS проверена на macOS Catalina, Big Sur и Monterey.

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

Если у вас возникают проблемы с подключением к сервису Secure LDAP, выполните приведенные ниже инструкции.

Шаг 1.Проверьте подключение

Проверьте подключение с помощью odutil.
Выполните команду odutil show nodenames в терминале.
Убедитесь, что статус /LDAPv3/ldap.google.com – в сети. Если это не так, попробуйте вариант с telnet.

Проверьте подключение с помощью nc.
Выполните в терминале следующую команду: nc -zv ldap.google.com 636
Если вам не удастся подключиться к Google таким образом, попробуйте подключиться с помощью IPv4.

Проверьте подключение по протоколу IPv4.
Чтобы использовать на устройстве протокол IPv4, выполните следующие действия:

  1. Откройте Системные настройки > Сеть > Wi-Fi > Дополнительно.
  2. В меню "Дополнительно" перейдите на вкладку "TCP/IP".
  3. В раскрывающемся списке выберите Только локальная связь вместо Настроить IPv6.
  4. Нажмите ОК, а затем Применить, чтобы сохранить изменения.
  5. Проверьте аутентификацию сервиса с помощью утилиты ldapsearch. Для этого выполните подключение и поиск.

Шаг 2.Проверьте, можете ли вы видеть объекты каталога

  1. Откройте Directory Utility (Утилита каталогов), а затем вкладку Directory Editor (Редактор каталогов).
  2. В раскрывающемся списке выберите узел /LDAPv3/ldap.google.com.
  3. Здесь должны быть показаны пользователи и группы из домена Google.

Инструкции по настройке приложений Java

Большинство приложений на базе Java с функциями LDAP можно настроить для аутентификации с помощью сертификатов клиента, установив эти сертификаты в хранилище ключей приложения. Файлы конфигурации могут отличаться в зависимости от приложения, но процесс обычно похож. Для настройки требуется установить OpenSSL и среду выполнения Java.

  1. Преобразуйте сертификат и ключи в формат Java Keystore. В процессе потребуется вводить пароли. Придумайте надежный пароль и каждый раз используйте его. Предположим, что файл ключа клиента называется ldap-client.key.

    Команды для macOS или Linux:

    $  openssl pkcs12 -export -out java-application-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key
    

    Команды для Windows:

    $  certutil -mergepfx ldap-client.crt java-application-ldap.pkcs12
    

    Важно! Оба файла (<CERT_FILE>.crt и <CERT_FILE>.key) должны находиться в одном каталоге. и иметь одинаковое название, различаясь только расширениями (key и crt). В этом примере используются названия ldap-client.crt и ldap-client.key.

  2. Импортируйте сертификат в хранилище ключей:

    $  keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS
    
  3. Свойства Java можно настраивать разными способами в зависимости от приложения. Чаще всего их можно задать с помощью параметра -D в командной строке java, используемой для запуска. Настройте свойства Java для своего приложения.

    javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks
    javax.net.ssl.keyStorePassword = <password selected above>
    
  4. Настройте параметры подключения LDAP для приложения, используя информацию из раздела Основные инструкции по настройке.

Как использовать stunnel в качестве прокси-сервера (необязательно)

Для клиентов, которые не поддерживают аутентификацию в LDAP с помощью сертификата клиента, используйте stunnel в качестве прокси-сервера.

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

Выполните указанные ниже действия.

  1. Установите Stunnel. Пример для Ubuntu:

    $  sudo apt-get install stunnel4
    
  2. Создайте файл конфигурации /etc/stunnel/google-ldap.conf со следующим содержимым (предполагается, что ldap-client.crt – это сертификат, а ldap-client.key – ключ):

    [ldap]
    client = yes
    accept = 127.0.0.1:1636
    connect = ldap.google.com:636
    cert = ldap-client.crt
    key =
    ldap-client.key

  3. Чтобы включить Stunnel, откройте файл /etc/default/stunnel4 и задайте параметр ENABLED=1.

  4. Перезапустите Stunnel.

    $  sudo /etc/init.d/stunnel4 restart
    
  5. Настройте приложение так, чтобы оно указывало на ldap://127.0.0.1:1636.

    Вы можете заменить "1636" любым неиспользуемым портом, если также измените строку accept в файле конфигурации выше. Вам нужно будет использовать обычный протокол LDAP без StartTLS/SSL/TLS между клиентом и stunnel, поскольку они взаимодействуют локально.

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

Дальнейшие действия

После того как вы подключите LDAP-клиент к сервису Secure LDAP, вам потребуется изменить статус сервиса на вариант Включено.

Дальнейшие инструкции приведены в статье 5. Переведите LDAP-клиентов в положение "Включено".

Примечание. При необходимости вы можете использовать простые инструменты, такие как ldapsearch, ADSI или ldp.exe, для устранения неполадок, если при попытке подключить LDAP-клиент к сервису возникают ошибки. Инструкции приведены в статье Как выполнить тестирование подключения и устранить неполадки.