Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.

Вернуться к обычному просмотру страницы.

Однофакторная аутентификация

Существует два способа интеграции Authelia с бэкэндом аутентификации:

  • LDAP: пользователи хранятся на удаленных серверах, таких как OpenLDAP, OpenDJ, FreeIPA или Microsoft Active Directory.
  • Файл: пользователи хранятся в YAML-файле с хэшированной версией пароля.

1 - Однофакторная аутентификация

Конфигурация аутентификации

authentication_backend:
  refresh_interval: '5m'
  password_reset:
    disable: false
    custom_url: ''
  password_change:
    disable: false

refresh_interval

Этот параметр управляет интервалом, через который обновляются данные из бэкэнда. В порядке важности обновляются такие данные, как группы, адрес электронной почты и отображаемое имя. Это особенно полезно для файлового провайдера, когда часы включены или вообще включены в LDAP-провайдере.

В дополнение к значениям длительности этот параметр принимает значения always и disable; при этом always будет всегда обновлять это значение, а disable - никогда не обновлять профиль.

password_reset

disable

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

custom_url

Пользовательский URL-адрес сброса пароля. Он заменяет встроенную функцию сброса пароля и отключает конечные точки, если он настроен на что-либо, кроме “ничего” или пустой строки.

password_change

disable

Этот параметр определяет, могут ли пользователи изменять свой пароль через веб-фронтенд или нет.

file

Поставщик аутентификации файлов.

ldap

Поставщик аутентификации LDAP.

2 - 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

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

3 - Файлы конфигурации

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

Файл конфигурации configuration.yml

authentication_backend:
  file:
    path: '/config/users.yml'
    watch: false
    search:
      email: false
      case_insensitive: false
    extra_attributes:
      extra_example:
        multi_valued: false
        value_type: 'string'
    password:
      algorithm: 'argon2'
      argon2:
        variant: 'argon2id'
        iterations: 3
        memory: 65536
        parallelism: 4
        key_length: 32
        salt_length: 16
      scrypt:
        variant: 'scrypt'
        iterations: 16
        block_size: 8
        parallelism: 1
        key_length: 32
        salt_length: 16
      pbkdf2:
        variant: 'sha512'
        iterations: 310000
        salt_length: 16
      sha2crypt:
        variant: 'sha512'
        iterations: 50000
        salt_length: 16
      bcrypt:
        variant: 'standard'
        cost: 12

Опции

path

Путь к файлу со списком сведений о пользователе. Поддерживаются типы файлов: YAML-файл

watch

Позволяет перезагрузить базу данных, наблюдая за ее изменениями.

Функциональные возможности поиска по имени пользователя.

email

Позволяет пользователям входить в систему, используя свой адрес электронной почты. Если эта функция включена, два пользователя не должны иметь одинаковые адреса электронной почты, а их имена пользователей не должны быть адресами электронной почты.

extra_attributes

Дополнительные атрибуты для загрузки с сервера каталогов.

Ключ представляет собой имя атрибута бэкэнда. База данных будет проверена с учетом конфигурации multi_valued и value_type.

В приведенном ниже примере мы загружаем атрибут сервера каталогов example_file_attribute в атрибут Authelia example_file_attribute, рассматривая его как однозначный атрибут, имеющий базовый тип integer.

authentication_backend:
  file:
    extra_attributes:
      example_file_attribute:
        multi_valued: false
        value_type: 'integer'

Password Options

algorithm

Управляет алгоритмом хэширования, используемым для хэширования новых паролей. Значение должно быть одним из:

argon2 для алгоритма Argon2 scrypt для алгоритма Scrypt pbkdf2 для алгоритма PBKDF2 sha2crypt для алгоритма SHA2Crypt bcrypt для алгоритма Bcrypt.

argon2

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

scrypt

Реализация алгоритма Scrypt.

pbkdf2

Реализация алгоритма PBKDF2.

sha2crypt

Реализация алгоритма SHA2 Crypt.

bcrypt

Реализация алгоритма Bcrypt.