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-клиент, откройте настройки аутентификации или каталога клиента и введите данные из таблицы ниже.

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

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

ADSI Edit (Windows)

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

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

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

    Computer (Компьютер): "Select or type a domain or server" (Выберите или введите домен или сервер)
    ldap.google.com

    Use SSL-based Encryption (Использовать шифрование на основе SSL): Checked (Установлено)
  4. Нажмите Advanced (Дополнительно) и введите следующие данные:

    Specify credentials (Указать учетные данные): установите флажок.
    Username (Имя пользователя): имя пользователя для доступа из консоли администратора.
    Password (Пароль): пароль для доступа из консоли администратора.
    Port Number (Номер порта): 636.
    Protocol (Протокол): LDAP.
    Simple bind authentication (Простая аутентификация привязки): установите флажок.
  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 так, чтобы использовалось созданное хранилище ключей. Чтобы добавить параметры, следуйте инструкциям.

    "-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. Нажмите Add Directory (Добавить каталог).
    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. В текстовом поле Select group (Выбрать группу) введите название группы 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. Рядом с приложением Web Access нажмите Edit (Изменить).
    Откроется диалоговое окно Edit Application (Изменить приложение) для приложения Web Access.
  10. В группе Configuration parameters (Параметры конфигурации) выберите Explicit only (Только явные) в списке Logon policy (Правила входа) и нажмите OK.

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

Регистрация исключений, возникающих при аутентификации сервера 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. Выберите Connection (Подключение) > Connect (Подключиться).
  13. Укажите следующие сведения о подключении:

    Server (Сервер): ldap.google.com
    Port (Порт): 636
    Connectionless (Без подключения): флажок снят
    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, выберите его и нажмите Open (Открыть).
    При необходимости введите пароль.
    В списке сертификатов системной связки ключей должен появиться сертификат с названием LDAP Client.
  6. Нажмите на стрелку рядом с сертификатом LDAP Client. Ниже появится закрытый ключ.
    1. Дважды нажмите на него.
    2. В диалоговом окне выберите вкладку Access Control (Контроль доступа) и нажмите + в левом нижнем углу.
    3. В открывшемся окне нажмите Command + Shift + G, чтобы открыть новое окно, и замените существующий текст на /usr/bin/ldapsearch.

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

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

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

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

      Теперь вы готовы получить доступ к вашему 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. Выберите File (Файл) > New (Создать) > New Profile (Создать профиль).
    2. Введите название профиля, например Google LDAP.
    3. Нажмите Далее.

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

      Host (Хост): ldap.google.com
      Port (Порт):
      636
      Base DN (Базовое уникальное имя): доменное имя в формате уникального имени. Пример для 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. Введите следующие сведения и нажмите Save (Сохранить):

Name (Название)

Google Secure LDAP

Хост

ldap.google.com

Port (Порт)

636

SSL включен

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

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

1

Уникальное имя для привязки

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

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

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

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

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

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

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

User name attribute (Атрибут для имени пользователя)

uid

Атрибут Real name

displayname

Атрибут Email (Адрес электронной почты)

mail

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

dn

Group base DN (Базовое уникальное имя группы)

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

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

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

Group name attribute (Атрибут названия группы)

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 указано значение sss для объектов passwd, shadow, group и netgroup:

    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 с помощью команды chmod 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, вы все равно можете подключиться к Безопасному 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, выберите Encrypt using SSL (Шифровать с помощью SSL) и нажмите Manual (Вручную).
  5. Выберите новое название сервера и нажмите Изменить.
  6. Введите понятное название конфигурации, например Google Secure LDAP.
  7. Выберите Encrypt using SSL (Шифровать с помощью SSL) и убедитесь, что в качестве порта указано значение 636.
  8. Перейдите на вкладку Поиск и соответствия.
    1. В раскрывающемся списке Access this LDAPv3 server using (Доступ к этому серверу LDAPv3 с помощью) выберите RFC2307.
    2. После запроса укажите информацию о домене в поле Суффикс базы поиска. Например, введите dc=zomato,dc=com для доменного имени zomato.com.
    3. Нажмите ОК.
    4. Настройте атрибуты для типа записи Пользователи:
      1. В разделе Record Types and Attributes (Типы и атрибуты записей) выберите Users (Пользователи) и нажмите кнопку +.
      2. Во всплывающем окне выберите Attribute Types (Типы атрибутов), нажмите GeneratedUID (Сгенерированный UID) и нажмите OK, чтобы закрыть всплывающее окно.

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

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

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

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

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

  1. Убедитесь, что устройство подключено к интернету. Если у вас нет подключения к интернету, вход для пользователя Безопасного LDAP не будет работать.
    Примечание. Подключение к интернету требуется только для первого входа. Последующие входы могут выполняться без доступа к интернету.
  2. Войдите на устройство, используя аккаунт пользователя, настроенный для аутентификации с помощью безопасного 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 статус online. Если это не так, попробуйте вариант с 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. Откройте Службу каталогов и перейдите на вкладку Редактор каталога.
  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.

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