AUTH_TYPE=ldap
Аутентификация LDAP использует Symfony Security component authenticators for LDAP. SuiteCRM расширяет некоторые сервисы Symfony. Таким образом, большая часть настроек будет аналогична настройкам Symfony.
На данный момент устаревшие настройки LDAP игнорируются. Поддержка устаревших настроек планируется в будущем.
Прежде чем приступить к настройке LDAP, обратите внимание на следующее:
Настройки, описанные в этом разделе:
Не учитываются при входе в систему с использованием API v4 или v8.
Не используются в устаревшей конфигурации.
Настройки LDAP, указанные через графический интерфейс (
), не учитываются.Настройки LDAP, указанные через графический интерфейс, используются только устаревшим API v4.
Для использования LDAP в SuiteCRM 8.x необходимо прописать соответствующие настройки в файле .env.local
(как описано ниже) и, если вы хотите использовать API v4 с LDAP, настройте LDAP, используя графический интерфейс ( ).
Для включения аутентификации LDAP в файле .env.local
пропишите следующее:
AUTH_TYPE=ldap
SuiteCRM предоставляет доступ к некоторым параметрам Symfony LDAP, указывая стандартные значения этих параметров в файле .env
.
Файл .env
содержит значения по умолчанию для всех доступных переменных системы. Если вы хотите переопределить те или иные значения - укажите новые значения параметров в файле .env.local
.
###> LDAP CONFIG ###
LDAP_HOST=''
LDAP_PORT=389
LDAP_ENCRYPTION=tls
LDAP_PROTOCOL_VERSION=3
LDAP_REFERRALS=false
LDAP_DN_STRING=''
LDAP_QUERY_STRING=''
LDAP_SEARCH_DN=''
LDAP_SEARCH_PASSWORD=''
###< LDAP CONFIG ###
Название сервера LDAP.
Порт сервера LDAP.
Тип шифрования, используемый для подключения к LDAP: none
, tls
или ssl
.
Параметр DN
(Distinguished Name) используется для идентификации пользователя в LDAP. Имя пользователя может быть указано как переменная, например:
'cn={username},dc=example,dc=org'
.
Строка для поиска пользователя. Найденное DN
будет использоваться для проверки учётных данных.
DN пользователя, которое будет использоваться для поиска DN
.
Пароль пользователя, используемого в LDAP_SEARCH_DN.
###> LDAP CONFIG ###
LDAP_HOST=ldap
LDAP_ENCRYPTION=none
LDAP_DN_STRING='cn={username},dc=example,dc=org'
###< LDAP CONFIG ###
Даже при использовании LDAP система позволяет использовать собственную аутентификацию с использованием пароля, установленного в SuiteCRM для указанного пользователя.
Если в настройках пользователя параметр external_auth_only
(см. соответствующее поле таблицы users
в базе данных) установлен в значение 1 (или true), вход в систему завершится ошибкой, если указанный пароль не совпадает с паролем в LDAP, или если возникнут какие-либо другие проблемы с аутентификацией по LDAP.
С другой стороны, если у пользователя параметр external_auth_only
установлен в значение 0 (или false) и аутентификация по LDAP не удалась, система попытается пройти аутентификацию, используя учётные данные SuiteCRM.
По умолчанию автоматическое создание пользователей для LDAP отключено.
Если этот параметр отключён, то вы сможете аутентифицировать пользователя с помощью LDAP только в том случае, если он перед этим был создан в SuiteCRM.
Включённый параметр LDAP_AUTO_CREATE автоматически создаст пользователя из LDAP, если он ещё не существует в SuiteCRM.
Обратите внимание, что у созданного таким образом пользователя не будет установлен пароль в SuiteCRM, а параметр external_auth_only
будет установлен в значение 1 (или true).
Для включения автоматического создания пользователя LDAP в файле .env.local
пропишите следующее:
LDAP_AUTO_CREATE=enabled
При включении автоматического создания пользователя вам также необходимо прописать параметры, необходимые для поиска пользователя в LDAP.
Как и для других уже рассмотренных параметров, для автоматического создания пользователя файл .env
содержит значения по умолчанию, которые вы можете переопределить:
###> LDAP AUTO CREATE CONFIG ###
LDAP_AUTO_CREATE=disabled
LDAP_PROVIDER_BASE_DN=''
LDAP_PROVIDER_SEARCH_DN=''
LDAP_PROVIDER_SEARCH_PASSWORD=''
LDAP_PROVIDER_DEFAULT_ROLES=ROLE_USER
LDAP_PROVIDER_UID_KEY=''
LDAP_PROVIDER_FILTER=''
###< LDAP AUTO CREATE CONFIG ###
Базовое (корневая) DN
, используемое для поиска пользователей.
Атрибут вашей записи в LDAP для использования в качестве uid
. Используется для создания запроса типа ({uid_key}={username})
.
Необязательный параметр. Позволяет указать запрос для поиска пользователя в LDAP. Фильтр по умолчанию: ({uid_key}={username})
.
DN
другого пользователя, который будет использоваться для поиска пользователя, с которым мы в данный момент пытаемся пройти аутентификацию.
Пароль для пользователя, используемого в параметре LDAP_PROVIDER_SEARCH_DN.
Настройки дополнительных полей используются для получения дополнительных атрибутов/полей из LDAP. Полученные значения могут быть использованы для заполнения параметров создаваемой записи нового пользователя.
Настройки дополнительных полей НЕ прописываются в файле .env
. Это делается через переопределение параметров контейнера.
Настройки для дополнительных полей по умолчанию прописываются в файле config/services/ldap/ldap.yaml
.
Для переопределения настроек необходимо скопировать указанный выше файл в папку extensions
, прописав аналогичный путь до файла, например: extensions/<your-package>/config/services/ldap/ldap.yaml
.
parameters:
ldap.autocreate.extra_fields_map:
ldap.extra_fields: [ ]
где:
Массив строк с ключом атрибутов/полей записи LDAP для извлечения (см. пример ниже).
Способ сопоставления полей LDAP с полями пользователя (см. пример ниже).
Настройки в файле .env.local
###> LDAP AUTO CREATE CONFIG ###
LDAP_PROVIDER_BASE_DN='dc=example,dc=org'
LDAP_PROVIDER_UID_KEY='cn'
LDAP_PROVIDER_SEARCH_DN='cn=admin,dc=example,dc=org'
LDAP_PROVIDER_SEARCH_PASSWORD='admin'
###< LDAP AUTO CREATE CONFIG ###
Настройки в файле extensions/<your-package>/config/services/ldap/ldap.yaml
parameters:
ldap.extra_fields: [ 'name', 'sn', 'email' ]
ldap.autocreate.extra_fields_map:
name: first_name
sn: last_name
email: email1
Одна из замечательных особенностей использования пакетов и настроек Symfony заключается в том, что мы можем использовать весь потенциал возможностей, предлагаемых фреймфорком Symfony. Одна из таких возможностей - секреты (см. описание в официальной документации)
Секреты Symfony позволяют нам безопасно хранить все конфиденциальные значения, зашифрованные в хранилище (vault). Кроме того, эти значения также могут быть определены для отдельного окружения.
В нашем случае это может быть использовано для хранения сертификатов и закрытых ключей, к которым мы бы не хотели иметь легкий доступ.
Для добавления секретов сначала выполните действия, описанные в документе Symfony’s documentation: How to Keep Sensitive Information Secret.
После выполнения действий, необходимых для добавления секретов, вы можете изменить конфигурацию LDAP таким образом, чтобы некоторые настройки сохранялись в секретах. Следующие шаги могут быть использованы в качестве примера:
Добавьте секрет для закрытого ключа LDAP
Из корневой папки системы выполните команду php bin/console secrets:set LDAP_SEARCH_PASSWORD
и после приглашения укажите необходимое значение.
После внесения любых изменений в файлы .env
и ldap.yaml
необходимо очистить кеш Symfony.
Из корневой папки системы выполните:
bin/console cache:clear
Либо удалите содержимое папки /<path-to-your-suite8-project>/cache
.
Apache / php должны иметь доступ на чтение и запись в папку /<path-to-your-suite8-project>/cache
.
Это не относится к папке /<path-to-your-suite8-project>/public/legacy/cache
- не удаляйте её содержимое.
Дополнительная информация о настройке LDAP находится на странице Symfony’s Security Component documentation.
Обязательно убедитесь, что информация, указанная по ссылке, актуальна для версии Symfony, используемой в установленной версии SuiteCRM.
Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.