Воспользуйтесь инструкциями в этой статье, чтобы подключить ваш LDAP-клиент к службе Secure LDAP.
Важный:
- Обязательно ознакомьтесь с документацией поставщика.
Приведенные в этой статье сведения о подключении вашего LDAP-клиента к службе Secure LDAP носят исключительно справочный характер и могут изменяться. В дополнение к этим инструкциям, обязательно ознакомьтесь с документацией вашего поставщика, чтобы получить самые актуальные шаги по подключению вашего клиента к службе Secure LDAP. - Прежде чем начать
Перед использованием этих инструкций убедитесь, что вы добавили клиента в службу Secure LDAP , настроили права доступа , загрузили сертификат и ключ клиента и, при необходимости, создали учетные данные доступа . - Тестирование подключения
При желании, прежде чем приступать к этим шагам, вы можете выполнить быструю проверку соединения с помощью простых инструментов, таких как ldapsearch , ADSI и ldp.exe . Вы также можете использовать эти инструменты для устранения неполадок, если при попытке подключения вашего LDAP-клиента к службе возникнут ошибки. Инструкции см. в разделе «Проверка безопасного подключения LDAP» . - Как выполнить шаги по настройке
После подключения LDAP-клиента в соответствии с инструкциями на этой странице, вам необходимо завершить настройку LDAP-клиента, переключив статус службы в положение «Вкл.» в консоли администратора Google. Инструкции см. в разделе 5. Переключение LDAP-клиентов в положение «Вкл.» .
Что включено в эту статью
Данная статья включает следующие разделы:
- Основные инструкции по настройке — содержат общие инструкции по подключению LDAP-клиентов, не указанные в данной статье.
- Инструкции по настройке для конкретных LDAP-клиентов — Включает инструкции по подключению конкретных LDAP-клиентов (таких как Atlassian Jira или OpenVPN) к службе Secure LDAP. Шаги различаются в зависимости от типа клиента.
- Инструкции по настройке Java-приложений — включают общие инструкции для Java-приложений, предоставляющих функциональность LDAP.
- Необязательно: используйте stunnel в качестве прокси — В этом разделе приведены инструкции, описывающие дополнительные моменты, которые следует учитывать при подключении LDAP-клиентов, не поддерживающих цифровые сертификаты.
В этих инструкциях предполагается, что файлы ключа и сертификата клиента, которые вы загружаете, называются ldap-client.key и ldap-client.crt .
Основные инструкции по настройке
В этом разделе приведены общие инструкции по подключению вашего LDAP-клиента к службе Secure LDAP. Если ваш LDAP-клиент не указан в приведенных ниже инструкциях, обязательно обратитесь к документации для этого приложения.
Примечание: Некоторые LDAP-клиенты, такие как Atlassian Jira и SSSD, выполняют поиск пользователя для получения дополнительной информации о пользователе во время аутентификации. Чтобы обеспечить корректную работу аутентификации пользователей в таких LDAP-клиентах, необходимо включить параметр «Чтение информации о пользователе» для всех организационных подразделений, где включена проверка учетных данных пользователя . (Инструкции см. в разделе «Настройка прав доступа» .)
Для подключения LDAP-клиента к службе Secure LDAP:
- Настройте свой LDAP-клиент, используя Cloud Directory в качестве LDAP-сервера.
Загрузите сертификат в свой LDAP-клиент.
Служба Secure LDAP использует клиентские сертификаты TLS в качестве основного механизма аутентификации. Чтобы начать процесс загрузки сертификата в клиент LDAP, откройте настройки аутентификации или каталога клиента LDAP и введите данные из таблицы ниже.
Примечание: Подробную информацию о том, как и куда загружать TLS-сертификаты, см. в документации вашего поставщика.
Для получения основной информации о подключении воспользуйтесь следующей таблицей:
Имя хоста | ldap.google.com |
|---|---|
Порты | 389 для LDAP с включенным StartTLS |
Базовый ДН | Ваш домен в формате DN. Например: dc=example,dc=com for example.com |
Имя пользователя и пароль | Помимо аутентификации с помощью сертификата, некоторые LDAP-клиенты требуют ввода имени пользователя и пароля. Если поля для имени пользователя и пароля не являются обязательными, этот шаг можно пропустить. Создайте имя пользователя и пароль в консоли администратора Google. Инструкции см. в разделе «Создание учетных данных доступа» . |
Файлы клиентского сертификата и ключа | Используйте файл сертификата и ключа, загруженные из консоли администратора Google. Если LDAP-клиент не предоставляет способ аутентификации с помощью клиентского сертификата, см. раздел «Использование stunnel в качестве прокси» . ВАЖНО: Некоторые LDAP-клиенты, такие как Apache Directory Studio, не поддерживают загрузку цифровых сертификатов. Для решения этой проблемы см. раздел «Использование stunnel в качестве прокси» . |
Инструкции по настройке для конкретных LDAP-клиентов
ADSI Edit (Windows)
Выполните следующие шаги:
- Выполните шаги 1–11 в программе ldp.exe (Windows) , чтобы установить клиентские сертификаты.
- Перейдите в раздел Действия > Подключиться к…
- Введите следующие параметры подключения:
Имя: Введите имя для вашего подключения, например, Google LDAP .
Точка подключения: «Выберите или введите отличительное имя или контекст именования».
Введите доменное имя в формате DN (например, dc=example,dc=com для example.com ).
Компьютер: "Выберите или введите домен или сервер"
ldap.google.com
Использовать шифрование на основе SSL: Отмечено - Нажмите «Дополнительно...» и введите следующие данные:
Укажите учетные данные: Отмечено
Имя пользователя: имя пользователя для доступа из консоли администратора.
Пароль: Пароль для доступа к консоли администратора.
Номер порта: 636
Протокол: LDAP
Простая аутентификация по привязке: Отмечено - Нажмите ОК , а затем нажмите ОК еще раз.
- Если соединение установлено успешно, содержимое базового DN Active Directory отображается в правой панели.
Apache Directory Studio
Для использования Apache Directory Studio подключитесь через stunnel , используя учетные данные (имя пользователя и пароль), сгенерированные в консоли администратора Google. Предполагая, что учетные данные уже созданы и stunnel прослушивает порт 1389 на localhost, выполните следующие действия:
- Нажмите Файл > Создать…
- Выберите LDAP Browser > LDAP Connection .
- Нажмите «Далее» .
- Введите параметры подключения:
Имя подключения: выберите имя, например, Google LDAP.
Имя хоста: localhost
Порт: 1389 (или порт прослушивания/приема stunnel)
Метод шифрования: Без шифрования (Примечание: Если stunnel запущен удаленно, рекомендуется использовать шифрование между stunnel и клиентом.) - Нажмите «Далее» .
- Введите параметры аутентификации:
Метод аутентификации: Простая аутентификация
Укажите DN или имя пользователя для привязки: имя пользователя, предоставляющее учетные данные доступа из консоли администратора.
Пароль привязки: Пароль для доступа из консоли администратора. - Нажмите «Далее» .
- Введите базовый DN.
Это ваше доменное имя в формате DN ( dc=example,dc=com для example.com ). - Нажмите «Готово» .
Atlassian Jira
Atlassian Jira выполняет поиск пользователя для получения дополнительной информации о нём во время аутентификации. Чтобы убедиться, что аутентификация пользователей работает корректно для этого LDAP-клиента, необходимо включить параметры «Чтение информации о пользователях» и «Чтение информации о группах» для всех организационных подразделений, где включена проверка учетных данных пользователя . (Инструкции см. в разделе «Настройка прав доступа» .)
Важно: Использование следующих инструкций потенциально может привести к раскрытию файла keystorePassword пользователям и файлам журналов. Примите меры предосторожности, чтобы избежать несанкционированного доступа к локальной оболочке, файлу журнала и консоли администратора Google. В качестве альтернативы приведенным ниже инструкциям используйте метод stunnel4 (см. Дополнительно: Используйте stunnel в качестве прокси ).
Примечание: Следующие инструкции предполагают, что Jira установлена в каталоге /opt/atlassian/jira .
Для подключения клиента Atlassian Jira к службе Secure LDAP:
- Скопируйте сертификат и ключ на свой(и) сервер(ы) Jira. (Это сертификат, сгенерированный в консоли администратора Google при добавлении LDAP-клиента в службу Secure LDAP.)
Например:
$ scp ldap-client.key user@jira-server: - Преобразуйте сертификат и ключи в формат хранилища ключей Java. В процессе преобразования вам будет предложено ввести пароль. Для простоты выберите надежный пароль и используйте один и тот же пароль для всех запросов.
$ 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 - Настройте Jira для использования только что созданного хранилища ключей. Следуйте инструкциям здесь , чтобы добавить параметры:
"-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password"
В Linux:- Отредактируйте файл /opt/atlassian/jira/bin/setenv.sh .
- Найдите параметр JVM_SUPPORT_RECOMMENDED_ARGS.
- Добавьте строку "-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password", заменив "password" на пароль, который вы выбрали выше.
- Перезапустите Jira.
$ /opt/atlassian/jira/bin/stop-jira.sh
$ /opt/atlassian/jira/bin/start-jira.sh - Войдите в веб-интерфейс Jira как администратор.
- Перейдите в «Настройки» > «Управление пользователями». (Для перехода к настройкам воспользуйтесь значком шестеренки в правом верхнем углу.)
- Нажмите «Каталоги пользователей» .
- Нажмите «Добавить каталог».
- Выберите LDAP в качестве типа.
- Нажмите «Далее» .
- Введите следующее:
Имя
Google Secure LDAP
Тип каталога
OpenLDAP
Имя хоста
ldap.google.com
Порт
636
Используйте SSL
Проверено
Имя пользователя
Создайте имя пользователя и пароль в консоли администратора Google. Инструкции см. в разделе «Создание учетных данных доступа» .
Пароль
Создайте имя пользователя и пароль в консоли администратора Google. Инструкции см. в разделе «Создание учетных данных доступа» .
Базовый ДН
Ваше доменное имя в формате DN. (например, dc=example,dc=com для example.com )
Дополнительный DN пользователя
Необязательно. "ou=Пользователи"
Дополнительная группа DN
Необязательно. "ou=Groups"
Разрешения LDAP
Только для чтения
Расширенные настройки
Без изменений
Настройки схемы пользователя >
Атрибут имени пользователяgoogleUid
Настройки схемы пользователя >
Атрибут RDN имени пользователяuid
Настройки схемы группы >
Класс объекта группыgroupOfNames
Настройки схемы группы >
Фильтр групповых объектов(objectClass=groupOfNames)
Настройки схемы членства >
Атрибуты членов группычлен
Настройки схемы членства >
Используйте атрибут "Членство пользователя".Проверено - Назначьте роль группе.
Прежде чем Atlassian Jira разрешит пользователю войти в систему, этот пользователь должен быть членом группы, которой предоставлен доступ к Jira.
Назначить роль группе:- Перейдите в Настройки > Приложения > Доступ к приложениям .
- В текстовом поле «Выберите группу» введите название группы Google, которой вы хотите предоставить доступ к Jira.
CloudBees Core / Jenkins
Инструкции по подключению CloudBees Core к службе Secure LDAP см. в разделе «Настройка CloudBees Core с помощью Cloud Identity Secure LDAP от Google» .
FreeRadius
Выполните следующие шаги:
- Установите и настройте FreeRADIUS по адресу /etc/freeradius/3.0/ .
После установки FreeRADIUS вы можете добавить конфигурацию LDAP, установив плагин freeradius-ldap .
$ sudo apt-get install freeradius freeradius-ldap - Скопируйте файлы ключа и сертификата LDAP-клиента в каталоги /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.* - Включите модуль LDAP.
$ cd /etc/freeradius/3.0/mods-enabled/
$ ln -s ../mods-available/ldap ldap - Отредактируйте файл /etc/freeradius/3.0/mods-available/ldap .
- ldap->server = 'ldaps://ldap.google.com:636'
- идентификатор = имя пользователя из учетных данных приложения
- пароль = пароль из учетных данных приложения
- base_dn = 'dc=domain,dc=com'
- tls->start_tls = no
- tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
- tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
- tls->require_cert = 'allow'
- Закомментируйте все поля в навигационной цепочке, относящиеся к разделу 'ldap -> post-auth -> update'.
- Отредактируйте файл /etc/freeradius/3.0/sites-available/default .
Это изменяет параметры подключения клиента FreeRadius. Если вы используете не стандартный клиент, обязательно обновите соответствующий клиент (внутренний туннель или любой пользовательский клиент), который вы настроили.- Измените раздел авторизации , добавив следующий блок внизу после оператора протокола аутентификации по паролю (PAP) :
if (User-Password) {
update control {
Auth-Type := ldap
}
} - В разделе авторизации включите LDAP, удалив перед ним знак '-'.
#
# Модуль ldap считывает пароли из базы данных LDAP.
ldap - Измените раздел аутентификации , отредактировав блок Auth-Type LDAP следующим образом:
# Auth-Type LDAP {
ldap
# } - Измените раздел аутентификации , отредактировав блок Auth-Type PAP следующим образом:
Auth-Type PAP {
# pap
ldap
}
- Измените раздел авторизации , добавив следующий блок внизу после оператора протокола аутентификации по паролю (PAP) :
GitLab
Инструкции по подключению GitLab к службе Secure LDAP см. в разделе «Настройка Google Secure LDAP для GitLab» .
Итопия/Убунту
Инструкции по подключению Itopia/Ubuntu к службе Secure LDAP см. в разделе «Настройка Google Cloud Identity LDAP на Ubuntu 16.04 для входа пользователей» .
Ivanti / LanDesk
Выполните следующие шаги:
- На вашем веб-сервере Ivanti откройте файл OpenLDAPAuthenticationConfiguration.xml или OpenLDAPSSLAuthenticationConfiguration.xml в текстовом редакторе в следующих папках:
C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework и C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess (где servicedesk — имя экземпляра) - Обновите значение <Server> на ldap.google.com .
- Обновите значение <Port> на порт 3268 для передачи текста в открытом виде с включенным StartTLS и на 3269 для порта SSL/TLS (значения по умолчанию: 389 для порта передачи текста в открытом виде или 636 для порта SSL/TLS).
- Установите значение <TestDN> равным вашему доменному имени в формате DN (например, dc=example,dc=com для example.com ).
- В файлы ..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" /> - В Центре настройки Ivanti откройте необходимый экземпляр.
- Рядом с приложением Service Desk Framework нажмите кнопку «Редактировать» .
Открывается диалоговое окно «Редактировать приложение для структуры службы поддержки». - В группе «Параметры конфигурации» в списке «Политика входа в систему» выберите «Только явный вход» , затем нажмите «ОК» .
- Рядом с приложением «Веб-доступ» нажмите «Редактировать» .
Открывается диалоговое окно «Редактировать приложение для веб-доступа». - В группе «Параметры конфигурации» в списке «Политика входа в систему» выберите «Только явный вход в систему», а затем нажмите «ОК» .
При входе в систему используйте сетевой пароль соответствующего пользователя домена.
Ведение журнала исключений при аутентификации на LDAP-сервере
Если у вас возникли проблемы с настройкой аутентификации на LDAP-сервере, вы можете включить ведение журнала исключений, чтобы помочь выявить проблему. По умолчанию эта функция отключена, и мы рекомендуем снова отключить ведение журнала исключений после завершения расследования.
Чтобы включить ведение журнала исключений при аутентификации на LDAP-сервере:
- Откройте соответствующий XML-файл конфигурации аутентификации в текстовом редакторе:
DirectoryServiceAuthenticationConfiguration.xml , OpenLDAPAuthenticationConfiguration.xml или OpenLDAPSSLAuthenticationConfiguration.xml - Измените строку:
<ShowExceptions>false</ShowExceptions>
к
<ShowExceptions>true</ShowExceptions> - Сохраните изменения.
Ldp.exe (Windows)
Выполните следующие шаги:
- Преобразуйте файлы сертификата и ключа в один файл формата 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 . - Перейдите в Панель управления.
- В поле поиска введите «сертификат» и нажмите «Управление пользовательскими сертификатами ».
- Перейдите в раздел Действия > Все задачи > Импорт…
- Выберите «Текущий пользователь» и нажмите «Далее» .
- Нажмите «Обзор»…
- В раскрывающемся списке «Тип файла» в правом нижнем углу диалогового окна выберите «Обмен личной информацией (*.pfx;*.p12)» .
- Выберите файл ldap-client.p12 из шага 2, нажмите «Открыть» , а затем нажмите «Далее» .
- Введите пароль из шага 2 и нажмите «Далее» .
- Выберите хранилище личных сертификатов, нажмите « Далее» , а затем нажмите «Готово» .
- Запустите Ldp.exe .
- Перейдите в раздел «Подключение» > «Подключиться...».
- Введите следующие данные для подключения:
Сервер: ldap.google.com
Порт: 636
Отсутствие связи: Не отмечено
SSL: Проверено - Нажмите ОК .
- Перейдите в меню «Вид» > «Дерево» .
- Введите базовый DN. Это ваше доменное имя в формате DN (например, dc=example,dc=com для example.com ).
- Нажмите ОК .
- Если подключение установлено успешно, LDP.exe отображает содержимое Active Directory, например, все атрибуты, присутствующие в базовом DN, в правой панели.
Netgate / pfSense
Инструкции по подключению Netgate/pfSense к службе Secure LDAP см. в разделе «Настройка Google Cloud Identity в качестве источника аутентификации» .
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)
Выполните следующие шаги:
- Преобразуйте файлы сертификата и ключа в один файл формата PKCS12. В командной строке введите следующее:
openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12
Введите свой пароль для шифрования выходного файла. - Нажмите
В правом верхнем углу строки меню введите «Доступ к связке ключей» .
- Откройте приложение «Доступ к связке ключей» и в списке слева выберите «Система» .
- В верхнем левом углу панели меню выберите пункт «Файл» и затем «Импорт элементов» .
- Перейдите в папку, где находится сгенерированный файл ldap-client.p12 , выберите ldap-client.p12 и нажмите « Открыть» .
Если потребуется, введите свой пароль.
Сертификат с именем LDAP Client теперь должен отображаться в списке сертификатов системной связки ключей. - Нажмите стрелку рядом с сертификатом LDAP-клиента. Ниже отобразится закрытый ключ.
- Дважды щелкните по закрытому ключу.
- В диалоговом окне выберите вкладку «Контроль доступа» и нажмите кнопку «+» в левом нижнем углу.
В открывшемся окне нажмите Command+Shift+G, чтобы открыть новое окно, а затем замените существующий текст на /usr/bin/ldapsearch .
Нажмите « Перейти» .
Откроется окно, в котором будет выделен ldapsearch.Нажмите «Добавить» .
Нажмите «Сохранить изменения» и введите свой пароль, если потребуется.
Теперь вы готовы получить доступ к своему LDAP-каталогу из командной строки, используя команду OpenLDAP ldapsearch.
Предположим, что файл 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 (версия для сообщества)
Выполните следующие шаги:
- При необходимости установите и настройте OpenVPN , или, если вы уже это сделали, откройте страницу настроек в OpenVPN.
Общая настройка VPN выходит за рамки данной справочной статьи. После настройки VPN вы можете добавить аутентификацию и авторизацию пользователей через LDAP. В частности, вам потребуется установить плагин openvpn-auth-ldap .
$ sudo apt-get install openvpn openvpn-auth-ldap - Скопируйте файлы ключа и сертификата LDAP-клиента в файлы /etc/openvpn/ldap-client.key и /etc/openvpn/ldap-client.crt .
- Создайте файл /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> - Отредактируйте конфигурационный файл OpenVPN, часто называемый /etc/openvpn/server.conf или аналогичным. В конце файла добавьте следующее:
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
verify-client-cert optional - Перезапустите сервер OpenVPN.
$ sudo systemctl restart openvpn@server - Настройте VPN-клиенты на использование имен пользователей и паролей. Например, в конфигурации OpenVPN-клиента добавьте auth-user-pass в конец файла конфигурации OpenVPN-клиента и запустите OpenVPN-клиент:
$ openvpn --config /path/to/client.conf - Следуйте инструкциям по использованию stunnel в качестве прокси-сервера .
Сервер доступа OpenVPN (коммерческая версия)
Инструкции по подключению OpenVPN Access Server к службе Secure LDAP см. в разделе «Настройка Google Secure LDAP с помощью OpenVPN Access Server» .
PaperCut MF и NG
Инструкции по подключению PaperCut к службе Secure LDAP см. в разделе «Как синхронизировать и аутентифицировать пользователей Google Workspace и Google Cloud Identity в PaperCut» .
Кукольное предприятие
Инструкции по подключению Puppet Enterprise к службе Secure LDAP см. в Google Cloud Directory for PE .
Softerra LDAP Browser
Важно: Прежде чем начать, убедитесь, что у вас установлен Softerra LDAP Browser версии 4.5 (4.5.19808.0) или более поздней. См. LDAP Browser 4.5 .
Выполните следующие шаги:
- Преобразуйте файлы сертификата и ключа в один файл формата 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 . - В браузере Softerra LDAP установите пару ключей.
- Перейдите в меню Инструменты > Диспетчер сертификатов .
- Нажмите «Импорт…»
- Нажмите «Далее» .
- Нажмите «Обзор»…
- В раскрывающемся списке «Тип файла» в правом нижнем углу диалогового окна выберите «Обмен личной информацией (*.pfx;*.p12)» .
- Выберите файл ldap-client.p12 из шага 2, описанного выше.
- Нажмите «Открыть» , а затем « Далее» .
- Введите пароль из шага 2 и нажмите «Далее» .
- Выберите хранилище личных сертификатов.
- Нажмите «Далее» .
- Нажмите «Готово» .
- Добавить профиль сервера.
- Перейдите в меню Файл > Создать > Создать профиль…
- Введите имя для профиля, например, Google LDAP .
- Нажмите «Далее» .
Введите следующее:
Хост: ldap.google.com
Порт: 636
Базовый DN: Ваше доменное имя в формате DN. (например, dc=example,dc=com для example.com)
Использовать защищенное соединение (SSL): Отмечено - Нажмите «Далее» .
- Выберите «Внешний (SSL-сертификат)» .
- Нажмите «Далее» .
- Нажмите «Готово» .
Sophos Mobile
Инструкции по подключению Sophos Mobile к службе Secure LDAP см. в разделе «Подключение Sophos Mobile к Google Cloud Identity / Google Cloud Directory с помощью Secure LDAP» .
Splunk
При подключении Splunk к службе Secure LDAP обязательно используйте версию Splunk 8.1.4 или более позднюю . При использовании более старых версий Splunk, таких как Splunk 8.1.3, на LDAP-сервер может отправляться чрезмерное количество запросов, что может привести к быстрому исчерпанию вашей квоты LDAP. Для получения дополнительной информации о проблемах Splunk версии 8.1.3 см. раздел «Известные проблемы Splunk» .
Выполните следующие шаги:
- Скопируйте файлы ключа и сертификата 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.* - Отредактируйте файл 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 - Добавьте следующие параметры конфигурации в файл /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 - Добавьте стратегию LDAP с помощью веб-интерфейса Splunk. Введите следующие данные и нажмите «Сохранить» :
Имя | Google Secure LDAP |
|---|---|
Хозяин | ldap.google.com |
Порт | 636 |
SSL включен | Проверено |
Порядок подключения | 1 |
Bind DN | Введите учетные данные доступа , которые вы сгенерировали в консоли администратора Google. |
Привязать DN-пароль | Введите учетные данные доступа , которые вы сгенерировали в консоли администратора Google. |
Базовый ДН | Ваше доменное имя в формате DN (например, dc=example,dc=com для домена example.com ). |
Фильтр пользовательской базы | Введите фильтр «Базовая база пользователей» для класса объектов, по которому вы хотите фильтровать пользователей. |
атрибут имени пользователя | uid |
Атрибут «Настоящее имя» | отображаемое имя |
Атрибут email | почта |
Атрибут группового сопоставления | дн |
Базовая группа DN | Ваше доменное имя в формате DN (например, ou=Groups,dc=example,dc=com для домена example.com ) |
Фильтр поиска статических групп | Введите фильтр поиска статических групп для класса объектов, по которому вы хотите фильтровать статические группы. |
Атрибут имени группы | н |
Статический атрибут члена | член |
SSSD (Red Hat Enterprise и CentOS)
SSSD выполняет поиск пользователя для получения дополнительной информации о пользователе во время аутентификации. Чтобы убедиться, что аутентификация пользователя работает корректно для этого LDAP-клиента, необходимо включить параметры «Чтение информации о пользователе» и «Чтение информации о группах» для всех организационных подразделений, где включена проверка учетных данных пользователя . (Инструкции см. в разделе «Настройка прав доступа» .)
Для подключения SSSD-клиента на Red Hat 8 или CentOS 8 к службе Secure LDAP:
- Добавьте клиент SSSD в службу Secure LDAP:
- В консоли администратора Google перейдите в раздел Приложения > LDAP > ДОБАВИТЬ КЛИЕНТ .
Обязательно войдите в систему, используя корпоративный аккаунт, а не личный аккаунт Gmail. - Введите данные клиента и нажмите ПРОДОЛЖИТЬ .
- Настройте права доступа :
Проверка учетных данных пользователя — весь домен
Прочтение информации о пользователе — весь домен
Ознакомьтесь с информацией о группе — Вкл. - Нажмите «ДОБАВИТЬ LDAP-КЛИЕНТ» .
- Загрузите сгенерированный сертификат.
- Нажмите «ПРОДОЛЖИТЬ ПЕРЕЙТИ К ДАННЫМ КЛИЕНТА» .
- Измените статус службы на «ВКЛ» .
- В консоли администратора Google перейдите в раздел Приложения > LDAP > ДОБАВИТЬ КЛИЕНТ .
- Установите зависимости:
dnf install openldap-clients sssd-ldap
install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap
Распакуйте ZIP-архив сертификата и скопируйте файлы .crt и .key в каталог /etc/sssd/ldap. - (Необязательно) Тестирование с помощью 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. - Создайте файл
/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 - Обновите права доступа и метки SELinux:
chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
restorecon -FRv /etc/sssd - Перезагрузите SSD:
systemctl restart sssd - Тест:
Подключение к серверу по SSH:ssh -l user@example.com {HOSTNAME}
Поиск неисправностей
- Проверьте версию SSSD (она должна быть не ниже 1.15.2):
# sssd --version
2.2.3 В 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.
- Убедитесь, что в файле /etc/nsswitch.conf для параметров passwd, shadow, group и netgroup указано значение "sss":
passwd: files sss
shadow: files sss
group: files sss
netgroup: files sss
В данном случае локальные файлы будут иметь приоритет над пользователями LDAP. - Проверьте файл /var/log/sssd.conf на наличие ошибок конфигурации:
Пример:
[sssd] [sss_ini_add_snippets] (0x0020): Ошибка слияния конфигурации: Файл /etc/sssd/sssd.conf не прошел проверку доступа. Пропускается.Действие: Необходимо изменить права доступа к файлу .conf на 600 с помощью команды chmod.
Пример:
[sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Атрибут 'ldap_groups_use_matching_rule_in_chain' не допускается в разделе 'domain/{DOMAIN}'. Проверьте наличие опечаток.[sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Атрибут 'ldap_initgroups_use_matching_rule_in_chain' не разрешен в разделе 'domain/{DOMAIN}'. Проверьте наличие опечаток.
Действие: Удалите неподдерживаемые расширения LDAP для сопоставления групп из файла sssd.conf.
Проверьте файл /var/log/sssd_{DOMAIN}.log на наличие ошибок LDAP/network/auth.
Пример:[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 в разделе domain и перезапустите sssd.
SSSD (другие дистрибутивы Linux)
SSSD выполняет поиск пользователя для получения дополнительной информации о пользователе во время аутентификации. Чтобы убедиться, что аутентификация пользователя работает корректно для этого LDAP-клиента, необходимо включить параметры «Чтение информации о пользователе» и «Чтение информации о группах» для всех организационных подразделений, где включена проверка учетных данных пользователя . (Инструкции см. в разделе «Настройка прав доступа» .)
Для подключения SSSD-клиента к службе Secure LDAP:
- Установите SSSD версии >= 1.15.2.
$ sudo apt-get install sssd - Предположим, что файлы сертификата и ключа клиента называются /var/ldap-client.crt и /var/ldap-client.key , а ваш домен — example.com . В этом случае отредактируйте файл /etc/sssd/sssd.conf , указав следующую конфигурацию:
[sssd]
сервисы = 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 Измените права доступа и права владения файлом конфигурации:
$ sudo chown root:root /etc/sssd/sssd.conf
$ sudo chmod 600 /etc/sssd/sssd.confПерезагрузите SSD:
$ sudo service sssd restart
Совет: Если вы используете модуль SSSD на компьютерах Linux без внешних IP-адресов в Google Compute Engine, вы все равно можете подключиться к службе Secure LDAP, если у вас включен внутренний доступ к сервисам Google. Подробнее см. раздел «Настройка частного доступа Google» .
macOS
Выполните следующие шаги, чтобы подключить клиент macOS для аутентификации учетных записей пользователей с помощью службы Secure LDAP.
Системные требования
- Для работы требуется macOS Catalina версии 10.15.4 или более поздней.
- Для выполнения шага 1 на этапе подготовки требуется идентификатор пользователя с правами суперадминистратора Google.
- Для выполнения этой настройки вам потребуются права локального администратора.
Содержание:
В этом разделе описаны инструкции по ручной настройке и тестированию аутентификации macOS с использованием службы Secure LDAP.
Шаг 1: Добавьте macOS в качестве LDAP-клиента в консоль администратора Google.
Инструкции см. в разделе «Добавление LDAP-клиентов» или посмотрите демонстрацию Secure LDAP . В процессе также будет загружен автоматически сгенерированный TLS-сертификат клиента.
Шаг 2: Импортируйте сертификат в связку ключей системы.
- Скопируйте сертификат (zip-файл, загруженный на шаге 1) и ключ на компьютер с macOS.
Совет: Распакуйте файл, чтобы найти файлы сертификата и ключа. - Импортируйте пару ключей в системную связку ключей:
Преобразуйте ключ и сертификат в файл PKCS 12 (p12). Выполните следующую команду в терминале:
openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key
Совет: Запишите название файла .p12.
Система запросит у вас пароль. Введите пароль для шифрования файла p12.Откройте приложение «Доступ к связке ключей» .
Щелкните по « Системная связка ключей».
Нажмите «Файл» > «Импорт элементов» .
Выберите созданный выше файл ldap-client.p12 .
При появлении запроса введите пароль администратора, чтобы разрешить изменение связки ключей системы.
Введите созданный вами выше пароль для расшифровки файла .p12.
Примечание: Ожидайте появления нового сертификата и связанного с ним закрытого ключа в списке ключей. Он может называться «LDAP Client» . Запишите имя сертификата для следующего шага ниже.- Выполните шаг 6 в разделе ldapsearch (macOS) этой статьи, чтобы настроить контроль доступа для закрытого ключа и добавить указанные ниже приложения. Если закрытый ключ не отображается в категории «Все элементы» , попробуйте перейти в категорию «Мои сертификаты» и найти нужную запись закрытого ключа, развернув соответствующий сертификат.
Приложение ldapsearch, как указано в инструкции, актуально только в случае необходимости устранения неполадок, а не для других целей. Обычно его удаляют перед предоставлением пользователям доступа к macOS.
Следующие три приложения необходимо добавить в список контроля доступа:
/System/Library/CoreServices/Applications/Directory Utility
/usr/libexec/opendirectoryd
/usr/bin/dscl
Добавьте в файл /etc/openldap/ldap.conf строку, убедившись, что "LDAP Client" — это точно такое же имя сертификата, как отображается в приложении macOS Keychain Access после импорта файла .p12 (имя берется из общего имени субъекта X.509 сгенерированного сертификата):
sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'
Шаг 3: Направьте устройство в каталог Google для аутентификации.
Откройте приложение «Утилита каталогов» , чтобы создать новый узел каталога LDAP:
- Нажмите на замок, чтобы внести изменения, и введите свой пароль.
- Выберите LDAPv3 и нажмите на значок карандаша, чтобы отредактировать настройки.
- Нажмите «Создать»…
- В качестве имени сервера введите ldap.google.com, выберите «Шифровать с использованием SSL» и нажмите «Вручную» .
- Выберите новое имя сервера и нажмите «Редактировать…».
- В качестве имени конфигурации введите описательное имя, например, Google Secure LDAP .
- Выберите «Шифровать с использованием SSL» и убедитесь, что порт установлен на 636 .
- Перейдите на вкладку «Поиск и сопоставления» .
- Выберите RFC2307 из раскрывающегося списка « Доступ к этому LDAPv3-серверу с помощью» .
- При появлении запроса введите информацию, относящуюся к домену, в поле «Базовый суффикс поиска» . Например, введите
dc=zomato,dc=comдля доменного имени zomato.com . - Нажмите ОК .
- Настройте атрибуты в разделе «Пользователи» :
- В разделе «Типы записей и атрибуты» выберите «Пользователи» и нажмите кнопку « + ».
- В появившемся окне выберите «Типы атрибутов», затем выберите «Сгенерированный UID» и нажмите «ОК», чтобы закрыть всплывающее окно.
Сгенерированный UID должен отображаться в разделе «Пользователи» после его развертывания. - Щелкните по GeneratedUID, а затем нажмите значок " + " в поле справа.
- Введите apple-generateduid в текстовое поле и нажмите Enter .
- В разделе «Пользователи» щелкните атрибут NFSHomeDirectory .
- На экране справа обновите значение этого атрибута на
#/Users/$uid$ - Нажмите кнопку ОК и введите свой пароль, чтобы сохранить изменения.
- В окне «Утилита каталогов» настройте новую конфигурацию LDAP:
- Перейдите на вкладку «Политика поиска» .
- Нажмите на значок замка, чтобы внести изменения, и введите пароль текущего пользователя, когда появится соответствующий запрос.
- Измените параметр в выпадающем списке с «Путь поиска» на «Пользовательский путь» .
- Откройте вкладку «Аутентификация» и нажмите значок « + ».
- Выберите
/LDAPv3/ldap.google.comиз списка доменов каталога, а затем нажмите «Добавить» . - Нажмите кнопку «Применить» и введите пароль администратора, если потребуется.
- Выполните следующие четыре команды, чтобы отключить механизмы аутентификации 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 - Перезагрузите компьютер, чтобы перезагрузить конфигурацию OpenDirectory.
Шаг 4: Создайте мобильный аккаунт (позволяет входить в систему в автономном режиме).
Любой пользователь Google Workspace или Cloud Identity может войти в систему, используя сетевую учетную запись (учетную запись Google), указав свое имя пользователя и пароль. Для этого процесса входа в систему необходимо подключение к сети. Если пользователю необходимо войти в систему с подключением к сети или без него, можно создать мобильную учетную запись. Мобильная учетная запись позволяет использовать имя пользователя и пароль вашей сетевой учетной записи (учетной записи Google) для входа в систему независимо от того, подключены вы к сети или нет. Для получения более подробной информации см. раздел «Создание и настройка мобильных учетных записей на Mac» .
Для создания мобильной учетной записи для пользователей Secure LDAP:
Выполните следующую команду, чтобы подключиться к защищенному LDAP-серверу и настроить домашний адрес и мобильную(ые) учетную(ые) учетную(ые) запись(и):
sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v
Совет: Замените $uid на часть имени пользователя в адресе электронной почты, связанном с учетной записью Google пользователя. Например, jsmith — это часть имени пользователя для jsmith@solarmora.com .Когда появится запрос на ввод имени пользователя администратора SecureToken , введите ваше имя пользователя администратора, а в следующем запросе введите свой пароль. Это добавит переменную $uid в FileVault. Это необходимо, если диск macOS зашифрован.
Шаг 5: (Необязательно) Настройте параметры экрана входа в систему.
- В левом нижнем углу перейдите в «Системные настройки» > «Пользователи и группы» > «Параметры входа в систему» .
- Чтобы снять блокировку, предоставьте учетные данные администратора.
- Измените параметр «Отображать окно входа в систему» на «Имя и пароль».
Шаг 6: Перезагрузите устройство и войдите в свою учетную запись.
- Убедитесь, что устройство подключено к интернету. Без подключения к интернету вход в систему для пользователя Secure LDAP работать не будет.
Примечание: подключение к интернету требуется только для первого входа в систему. Все последующие входы в систему могут происходить без доступа к интернету. - Войдите в систему устройства, используя учетную запись пользователя, настроенную на аутентификацию с помощью Secure LDAP.
Инструкции в этом разделе посвящены автоматизации настройки устройства для ваших пользователей. Выполните шаги 1 и 2 ниже на том же устройстве macOS, где вы выполняли ручную настройку на этапе подготовки.
Шаг 1: Создайте профиль Mac с сертификатом с помощью Apple Configurator 2.
- Установите Apple Configurator 2 на компьютер, где вы вручную настроили аутентификацию macOS с использованием Secure LDAP.
- Open Apple Configurator 2, create a new profile and in the Certificate section, click Configure, and import the previously generated .p12 file.
Note: Make sure this .p12 has a password. Enter this password in the Password section of the Certificate.
- Save this Profile.
- (For devices using M1 or M2 processors, skip this step and continue to Step 5. ) Open this profile in any text editor and add the following lines in first <dict> tag:
<key>PayloadScope</key>
<string>System</string>
This is added, as Apple Configurator does not support profiles for macOS yet. - In the second <dict> tag, parallel to certificate data, add the following lines:
<key>AllowAllAppsAccess</key>
<true/>
This will make sure that this certificate can be accessed by all applications.
Step 2: Convert Directory config file (plist) to xml
In this step, you are extracting all the manual configurations that you completed during step 3 of the preparation phase into a XML file. You can use this file and the Mac profile created in step 1 above to automatically configure other macOS devices.
- Copy /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist to your desktop or elsewhere.
- Convert it to XML so that you can inspect it in any text editor. Run the following command in Terminal:
sudo plutil -convert xml1 <path>/ldap.google.com.plist
You can access the file as<path>/ldap.google.com.plist. - Change the permission of the above file so that you can open the XML file. Make sure it is not empty.
Step 3: Create a python script to automate the configuration on your end-user devices
Copy the python script below and save it as a python file (.py file).
Note: This sample script is designed to be compatible with Python version 3.10.x. This script is provided on an as-is basis. Google support will not provide support for sample scripts.
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' ")
Step 4: Auto configure end-user devices
Go to other macOS devices that you would like to configure and follow these steps:
- Copy the Mac Profile file generated in step 1, XML config file generated in step 2, and the python script from step 3 to the device.
- To install the necessary dependency for the script, run the following command:
python3 -m pip install pyobjc-framework-opendirectory - Run the following command:
sudo python </path/to/saved_python_script> </path/to/ldap.google.com.plist generated in step 2> - To import certificates into the macOS system keychain, double-click on the Mac profile file generated in step 1, and when prompted provide your macOS local admin credentials. You will then be prompted to enter the .p12 password that you set during the preparation phase.
- Restart the macOS machine.
- Create mobile accounts as instructed in step 4 of the preparation phase, and optionally set additional preferences outlined in step 5 of the preparation phase.
- For users signing in to macOS using their Google credentials, their Workspace account username must be different from their macOS user profile user ID, or sign-in is blocked.
- Once a user starts signing in to macOS using Google credentials, user password management (reset or recovery) must happen on the Google website (for example, at myaccount.google.com or in the Google Admin console). If you choose to do password management using a third-party solution, then make sure the latest password is synchronized with Google.
- If the admin creates a new user or resets an existing user's password with the Ask for a password change at the next sign-in setting turned on, the user cannot sign in to Mac using the temporary password set by the admin.
Workaround: The user needs to sign in to Google using another device (for example, their mobile device or other desktop device), set a permanent password, and then sign in to macOS using the new password. - The Mac must be connected to a working internet connection so that ldap.google.com is reachable during the first sign-in after the above configuration. Any subsequent sign-ins won't need Internet access as long as you opted to set up a mobile account.
- Google Secure LDAP integration with macOS is tested on macOS Catalina, Big Sur, and Monterey.
If you have problems connecting to the Secure LDAP service, follow the instructions below.
Step 1: Verify the connection.
Verify the connection using odutil.
Run the odutil show nodenames command in the terminal.
Verify that the /LDAPv3/ldap.google.com status is online . If it's not online, try the telnet option.
Verify the connection using nc.
Execute the following command in the terminal: nc -zv ldap.google.com 636
If you aren't able to connect to Google using this approach, try connecting using IPv4.
Verify the connection with IPv4.
You can change your device to use IPv4 using the following steps:
- Go to System Preferences > Network > Wi-Fi > Advanced .
- Under the Advanced menu, go to the TCP/IP tab.
- Change the drop-down selection from Configure IPv6 to Link-local only .
- Click OK , and then click Apply to save the changes.
- Check service authentication via ldapsearch connectivity and valid search.
Step 2: Check whether you are able to see directory objects.
- Open Directory Utility , and then open the Directory Editor tab.
- Select the /LDAPv3/ldap.google.com node in the drop-down list.
- Verify whether you are able to see users and groups from your Google domain.
Configuration instructions for Java applications
Most Java-based applications that offer LDAP functionality can be configured to authenticate with client certificates by installing your client certificates in the application's keystore. The exact configuration files will differ among applications, but the process is generally similar. Setup requires that OpenSSL and a Java Runtime Environment are installed.
Convert the certificate and keys to Java keystore format. You will be prompted for passwords throughout this process. Select a secure password and use the same one through all of the prompts. Assuming your client key file is named ldap-client.key :
If you are in macOS or Linux, use the following commands:
$ openssl pkcs12 -export -out java-application-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.keyIf you are in Windows, use the following commands:
$ certutil -mergepfx ldap-client.crt java-application-ldap.pkcs12Important: The two files ( <CERT_FILE>.crt and <CERT_FILE>.key ) must be located in the same directory. Also, make sure both key and crt have an identical name (with the two different extensions). In this example, we use the names ldap-client.crt and ldap-client.key .
Import the certificate into keystore:
$ keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKSJava properties may be configured in different ways depending on the application. Often, you can set them with the -D option on the "java" command line used to start it. Set the Java properties for your application:
javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks javax.net.ssl.keyStorePassword = <password selected above>Configure the application's LDAP connection settings, using the information in Basic configuration instructions .
Optional: Use stunnel as a proxy
For clients that don't offer a way to authenticate to LDAP with a client certificate, use stunnel as a proxy.
Configure stunnel to provide the client certificate to the LDAP server and configure your client to connect to stunnel. Ideally, you'll run stunnel on the same server(s) as your application and only listen locally so that you don't expose your LDAP directory beyond that server.
Выполните следующие шаги:
Install stunnel . For example, on Ubuntu:
$ sudo apt-get install stunnel4Create a configuration file /etc/stunnel/google-ldap.conf with the following contents (assuming ldap-client.crt is the cert, and ldap-client.key is the key):
[ldap]
client = yes
accept = 127.0.0.1:1636
connect = ldap.google.com:636
cert = ldap-client.crt
key = ldap-client.keyTo enable stunnel, edit /etc/default/stunnel4 and set ENABLED=1 .
Restart stunnel.
$ sudo /etc/init.d/stunnel4 restartConfigure your application to point to ldap://127.0.0.1:1636 .
You can replace "1636" with any unused port if you also change the accept line in the configuration file above. You'll need to use plaintext LDAP without StartTLS/SSL/TLS enabled between the client and stunnel, since they are communicating locally.
Note: If you choose to run stunnel on a separate server, you must configure your firewalls so that only the necessary applications can access your stunnel server. You can also configure stunnel to listen with TLS so that data between your application and stunnel servers is encrypted. The details of both of these configurations depend on your environment.
Следующие шаги
After you connect the LDAP client to the Secure LDAP service, you then need to switch the service status to On for the LDAP client.
For your next steps, see 5. Switch LDAP clients to On .
Note: If needed, you can use simple tools like ldapsearch , ADSI , or ldp.exe for troubleshooting if you encounter errors while trying to connect your LDAP client to the service. For instructions, see Connectivity testing and troubleshooting .