AUTH_TYPE=ldap
В разделе описываются настройки SAML для SuiteCRM версий 8+.
Аутентификация LDAP использует Symfony Security component authenticators for LDAP. SuiteCRM расширяет некоторые сервисы Symfony. Таким образом, большая часть настроек будет аналогична настройкам Symfony.
Имейте в виду, что подключение SuiteCRM к провайдеру LDAP будет зависеть от: * используемого провайдера LDAP * настроек провайдера LDAP
В этой документации описываются параметры LDAP, доступные в SuiteCRM. Это НЕ руководство по настройке 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
После внесения изменений в файл .env.local
в корневой папке приложения обязательно выполните команду ./bin/console cache:clear
, либо в графическом интерфейсе выполните Быстрое восстановление из меню администратора (Администрирование > Восстановление).
SuiteCRM предоставляет доступ к некоторым параметрам Symfony LDAP, указывая стандартные значения этих параметров в файле .env
.
Файл .env
содержит значения по умолчанию для всех доступных переменных системы. Если вы хотите переопределить те или иные значения - укажите новые значения параметров в файле .env.local
.
Параметры LDAP, указанные в файле .env по умолчанию
###> LDAP CONFIG ###
LDAP_CONNECTION_STRING=~ # available from 8.7.0
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=''
# All the following options are available from 8.7.0
# ldap debug logs go to php error log
LDAP_CONNECTION_OPTION_DEBUG_LEVEL=~
LDAP_CONNECTION_OPTION_API_INFO=~
LDAP_CONNECTION_OPTION_DEREF=~
LDAP_CONNECTION_OPTION_SIZELIMIT=~
LDAP_CONNECTION_OPTION_TIMELIMIT=~
LDAP_CONNECTION_OPTION_RESTART=~
LDAP_CONNECTION_OPTION_SERVER_CONTROLS=~
LDAP_CONNECTION_OPTION_CLIENT_CONTROLS=~
LDAP_CONNECTION_OPTION_API_FEATURE_INFO=~
LDAP_CONNECTION_OPTION_HOST_NAME=~
LDAP_CONNECTION_OPTION_ERROR_NUMBER=~
LDAP_CONNECTION_OPTION_ERROR_STRING=~
LDAP_CONNECTION_OPTION_MATCHED_DN=~
LDAP_CONNECTION_OPTION_TIMEOUT=~
LDAP_CONNECTION_OPTION_NETWORK_TIMEOUT=~
LDAP_CONNECTION_OPTION_X_TLS_CACERTDIR=~
LDAP_CONNECTION_OPTION_X_TLS_CACERTFILE=~
LDAP_CONNECTION_OPTION_X_TLS_CERTFILE=~
LDAP_CONNECTION_OPTION_X_TLS_CRL_ALL=~
LDAP_CONNECTION_OPTION_X_TLS_CRL_NONE=~
LDAP_CONNECTION_OPTION_X_TLS_CRL_PEER=~
LDAP_CONNECTION_OPTION_X_TLS_KEYFILE=~
LDAP_CONNECTION_OPTION_X_TLS_REQUIRE_CERT=~
LDAP_CONNECTION_OPTION_X_TLS_PROTOCOL_MIN=~
LDAP_CONNECTION_OPTION_X_TLS_CIPHER_SUITE=~
LDAP_CONNECTION_OPTION_X_TLS_RANDOM_FILE=~
LDAP_CONNECTION_OPTION_X_TLS_CRLFILE=~
LDAP_CONNECTION_OPTION_X_TLS_PACKAGE=~
LDAP_CONNECTION_OPTION_X_TLS_CRLCHECK=~
LDAP_CONNECTION_OPTION_X_TLS_DHFILE=~
LDAP_CONNECTION_OPTION_X_SASL_MECH=~
LDAP_CONNECTION_OPTION_X_SASL_REALM=~
LDAP_CONNECTION_OPTION_X_SASL_AUTHCID=~
LDAP_CONNECTION_OPTION_X_SASL_AUTHZID=~
LDAP_CONNECTION_OPTION_X_KEEPALIVE_IDLE=~
LDAP_CONNECTION_OPTION_X_KEEPALIVE_PROBES=~
LDAP_CONNECTION_OPTION_X_KEEPALIVE_INTERVAL=~
###< LDAP CONFIG ###
Название сервера LDAP.
Порт сервера LDAP (например - 389).
Тип шифрования, используемый для подключения к LDAP: none
, tls
или ssl
.
Параметр DN
(Distinguished Name) используется для идентификации пользователя в LDAP. Имя пользователя может быть указано как переменная, например:
'cn={username},dc=example,dc=org'
.
Строка для поиска пользователя. Найденное DN
будет использоваться для проверки учётных данных.
DN пользователя, которое будет использоваться для поиска DN
.
Пароль пользователя, используемого в LDAP_SEARCH_DN.
Все перечисленные ниже параметры доступны в SuiteCRM 8.7.0
Эти параметры соответствуют параметрам, используемым в ldap_set_option PHP.
LDAP_CONNECTION_OPTION_DEBUG_LEVEL
Укажите LDAP_CONNECTION_OPTION_DEBUG_LEVEL=7
для максимального уровня ведения журнала
Отладочная информация регистрируется в журнале ошибок PHP.
LDAP_CONNECTION_OPTION_API_INFO
LDAP_CONNECTION_OPTION_DEREF
LDAP_CONNECTION_OPTION_SIZELIMIT
LDAP_CONNECTION_OPTION_TIMELIMIT
LDAP_CONNECTION_OPTION_RESTART
LDAP_CONNECTION_OPTION_SERVER_CONTROLS
LDAP_CONNECTION_OPTION_CLIENT_CONTROLS
LDAP_CONNECTION_OPTION_API_FEATURE_INFO
LDAP_CONNECTION_OPTION_HOST_NAME
LDAP_CONNECTION_OPTION_ERROR_NUMBER
LDAP_CONNECTION_OPTION_ERROR_STRING
LDAP_CONNECTION_OPTION_MATCHED_DN
LDAP_CONNECTION_OPTION_TIMEOUT
LDAP_CONNECTION_OPTION_NETWORK_TIMEOUT
LDAP_CONNECTION_OPTION_X_TLS_CACERTDIR
LDAP_CONNECTION_OPTION_X_TLS_CACERTFILE
LDAP_CONNECTION_OPTION_X_TLS_CERTFILE
LDAP_CONNECTION_OPTION_X_TLS_CRL_ALL
LDAP_CONNECTION_OPTION_X_TLS_CRL_NONE
LDAP_CONNECTION_OPTION_X_TLS_CRL_PEER
LDAP_CONNECTION_OPTION_X_TLS_KEYFILE
LDAP_CONNECTION_OPTION_X_TLS_REQUIRE_CERT
LDAP_CONNECTION_OPTION_X_TLS_PROTOCOL_MIN
LDAP_CONNECTION_OPTION_X_TLS_CIPHER_SUITE
LDAP_CONNECTION_OPTION_X_TLS_RANDOM_FILE
LDAP_CONNECTION_OPTION_X_TLS_CRLFILE
LDAP_CONNECTION_OPTION_X_TLS_PACKAGE
LDAP_CONNECTION_OPTION_X_TLS_CRLCHECK
LDAP_CONNECTION_OPTION_X_TLS_DHFILE
LDAP_CONNECTION_OPTION_X_SASL_MECH
LDAP_CONNECTION_OPTION_X_SASL_REALM
LDAP_CONNECTION_OPTION_X_SASL_AUTHCID
LDAP_CONNECTION_OPTION_X_SASL_AUTHZID
LDAP_CONNECTION_OPTION_X_KEEPALIVE_IDLE
LDAP_CONNECTION_OPTION_X_KEEPALIVE_PROBES
LDAP_CONNECTION_OPTION_X_KEEPALIVE_INTERVAL
По умолчанию автоматическое создание пользователей для LDAP отключено.
Если этот параметр отключён, то вы сможете аутентифицировать пользователей с помощью LDAP только в том случае, если они перед этим были создан в SuiteCRM.
Включённый параметр LDAP_AUTO_CREATE автоматически создаст пользователя из LDAP, если он ещё не существует в SuiteCRM.
Обратите внимание, что у созданного таким образом пользователя не будет установлен пароль в SuiteCRM, а параметр external_auth_only
будет установлен в значение 1 (или true).
Для включения автоматического создания пользователя LDAP в файле .env.local
пропишите следующее:
LDAP_AUTO_CREATE=enabled
При включении автоматического создания пользователя вам также необходимо прописать параметры, необходимые для поиска пользователя в LDAP.
Как и для других уже рассмотренных параметров, для автоматического создания пользователя файл .env
содержит значения по умолчанию, которые вы можете переопределить:
Параметры 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.
Автоматическое создание пользователя позволяет определять учётные данные, которые будут прописаны в БД SuiteCRM на основе атрибутов из LDAP.
Массив строк для извлечения с ключом атрибутов/полей записи LDAP (см. пример ниже).
Способ сопоставления полей LDAP с полями пользователя (см. пример ниже).
Настройки дополнительных полей НЕ прописываются в файле .env
. Это делается через переопределение параметров контейнера.
Настройки для дополнительных полей по умолчанию прописываются в файле config/services/ldap/ldap.yaml
.
Для переопределения настроек необходимо скопировать указанный выше файл в папку extensions
, прописав аналогичный путь до файла: 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
Возможность входа в SuiteCRM с использованием собственного логина будет зависеть от значения параметра external_auth_only
, прописанного в профиле пользователя:
Если в настройках пользователя параметр external_auth_only
установлен в значение 1 (или true), пользователь не сможет войти в систему, используя учётные данные SuiteCRM.
С другой стороны, если для external_auth_only
установлено значение 0 (или false), пользователь сможет попытаться войти в систему, при условии, что у него установлен пароль в SuiteCRM.
Параметр должен отображаться на закладке «Дополнительно» в профиле пользователя при условии, что настроена SAML-аутентификация, см. также соответствующее поле таблицы «users» в базе данных.
Рассмотрите возможность использования секретов Symfony для хранения конфиденциальной информации, такой как сертификаты, открытые/закрытые ключи и т. д.
Дополнительная информация описана в разделе Использование секретов Symfony.
Дополнительная информация о настройке LDAP находится на странице Symfony’s Security Component documentation.
Обязательно убедитесь, что информация, указанная по ссылке, актуальна для версии Symfony, используемой в установленной версии SuiteCRM.
Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.