LDAP

Этот раздел предназначен для примера конфигурации, чтобы помочь пользователям получить примерное представление о контекстном расположении этого раздела конфигурации.

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

$$(&(member:1.2.840.113556.1.4.1941:={dn})(objectClass=group)(objectCategory=group))$$

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

Рекомендуется использовать интервал обновления по умолчанию или настроить его на достаточно низкое значение, чтобы обновлять группы пользователей и их статус (удалены, отключены и т. д.) для адекватной защиты вашей среды.