LDAP
Categories:
Настройка LDAP
configuration.yml
authentication_backend:
ldap:
address: 'ldap://127.0.0.1'
implementation: 'custom'
timeout: '5s'
start_tls: false
tls:
server_name: 'ldap.rabrain.ru'
skip_verify: false
minimum_version: 'TLS1.2'
maximum_version: 'TLS1.3'
certificate_chain: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
private_key: |
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
pooling:
enable: false
count: 5
retries: 2
timeout: '10 seconds'
base_dn: 'DC=rabrain,DC=ru'
additional_users_dn: 'OU=users'
users_filter: '(&({username_attribute}={input})(objectClass=person))'
additional_groups_dn: 'OU=groups'
groups_filter: '(&(member={dn})(objectClass=groupOfNames))'
group_search_mode: 'filter'
permit_referrals: false
permit_unauthenticated_bind: false
permit_feature_detection_failure: false
user: 'CN=admin,DC=rabrain,DC=ru'
password: 'password'
attributes:
distinguished_name: 'distinguishedName'
username: 'uid'
display_name: 'displayName'
family_name: 'sn'
given_name: 'givenName'
middle_name: 'middleName'
nickname: ''
gender: ''
birthdate: ''
website: 'wWWHomePage'
profile: ''
picture: ''
zoneinfo: ''
locale: ''
phone_number: 'telephoneNumber'
phone_extension: ''
street_address: 'streetAddress'
locality: 'l'
region: 'st'
postal_code: 'postalCode'
country: 'c'
mail: 'mail'
member_of: 'memberOf'
group_name: 'cn'
extra:
extra_example:
name: ''
multi_valued: false
value_type: 'string'
Описание настроек
address
URL-адрес LDAP, состоящий из схемы, имени хоста и порта. Формат - [<схема>://]<имя хоста>[:<порт>]
. По умолчанию используется схема ldapi, если путь абсолютный, иначе - ldaps, а допустимыми схемами являются ldap, ldaps или ldapi (сокет домена unix).
Если схема ldapi, то за ней должен следовать абсолютный путь к существующему сокету домена unix, для доступа к которому у пользователя/группы, от имени которой запущен процесс Authelia, есть соответствующие разрешения. Например, если сокет расположен по адресу /var/run/slapd.sock
, то адрес должен быть ldapi:///var/run/slapd.sock
.
authentication_backend:
ldap:
address: 'ldaps://dc1.rabrain.ru'
или
authentication_backend:
ldap:
address: 'ldap://[fd00:1111:2222:3333::1]'
implementation
Настраивает реализацию LDAP, используемую Authelia.
timeout
Тайм-аут для набора номера при подключении к LDAP.
start_tls
Включает использование процесса LDAP StartTLS, который не часто используется. Настраивать его следует только в том случае, если вы знаете, что он вам нужен. Первоначальное соединение будет осуществляться через обычный текст, и Authelia попытается обновить его с помощью LDAP-сервера. URL-адреса LDAPS немного более безопасны.
tls
Если эта опция определена, она управляет параметрами проверки TLS-соединений для LDAP-сервера.
По умолчанию Authelia использует системный сертификат доверия для проверки TLS-сертификатов TLS-соединений, а глобальная опция certificates_directory может быть использована для дополнения этого параметра.
pooling
enable
Включает функцию объединения соединений.
count
Количество открытых соединений, которые должны быть доступны в пуле в любой момент времени.
retries
Количество попыток получить свободное соединение, предпринятых в течение периода таймаута. Это эффективно разбивает таймаут на части.
timeout
Время, в течение которого мы ждем, пока соединение освободится в пуле, прежде чем сдаться и выдать ошибку.
base_dn
Устанавливает базовый контейнер отличительных имен для всех LDAP-запросов. Если ваш LDAP-домен rabrain.ru, то обычно это DC=rabrain,DC=ru, однако вы можете настроить его более точно, например, чтобы включить только объекты внутри OU authelia: OU=authelia,DC=rabrain,DC=ru. К этому приставке добавляется additional_users_dn для поиска пользователей и additional_groups_dn для поиска групп.
users_filter
Фильтр LDAP, позволяющий сузить круг пользователей. Это важно установить правильно, чтобы исключить пользователей с ограниченными возможностями.
additional_groups_dn
Аналогично additional_users_dn, но применяется к групповому поиску.
groups_filter
Аналогичен фильтру users_filter, но применяется к поиску по группам. Чтобы включить в поиск группы, в которых участник не является непосредственным членом, но является членом другой группы, которая является членом этих групп (т. е. рекурсивные группы)
permit_referrals
Разрешает следовать за рефералами. Это полезно, если в вашей архитектуре есть серверы, доступные только для чтения, и поэтому требуется, чтобы при выполнении операций записи ссылки выполнялись.
user
Отличительное имя пользователя в паре с паролем для привязки к операциям поиска и смены пароля.
password
Пароль, связанный с пользователем, используемый для привязки к LDAP-серверу для операций поиска и смены пароля.
attributes
Следующие параметры настраивают сопоставление атрибутов сервера каталогов.
distinguished_name
Атрибут сервера каталогов, содержащий отличительное имя, в основном используется для выполнения фильтрованного поиска. Существует четкое различие между реальным отличительным именем и атрибутом отличительного имени, все каталоги имеют отличительные имена для объектов, но не все имеют атрибут, представляющий это имя, по которому можно осуществлять поиск.
Единственная известная поддержка на данный момент - это Active Directory.
user name
Атрибут сервера каталогов, который сопоставляется с именем пользователя в Authelia. Он должен содержать заполнитель {username_attribute}
.
display_name
Атрибут сервера каталогов для извлечения, который отображается в веб-интерфейсе для пользователя при входе в систему.
family_name given_name middle_name nickname
Атрибут сервера каталогов, содержащий фамилию, имя, ник, пользователя.
extra
Дополнительные атрибуты для загрузки с сервера каталогов. Эти дополнительные атрибуты могут использоваться в других областях Authelia, таких как OpenID Connect 1.0.
Ключ представляет собой имя атрибута бэкэнда и по умолчанию является именем атрибута в Authelia.
В приведенном ниже примере мы загружаем атрибут сервера каталогов exampleServerAttribute в атрибут Authelia example_authelia_attribute, рассматривая его как однозначный атрибут, имеющий базовый тип integer.
authentication_backend:
ldap:
attributes:
extra:
exampleServerAttribute:
name: 'example_authelia_attribute'
multi_valued: false
value_type: 'integer'
Refresh Interval
Рекомендуется использовать интервал обновления по умолчанию или настроить его на достаточно низкое значение, чтобы обновлять группы пользователей и их статус (удалены, отключены и т. д.) для адекватной защиты вашей среды.