Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.
Однофакторная аутентификация
Существует два способа интеграции 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
Позволяет перезагрузить базу данных, наблюдая за ее изменениями.
search
Функциональные возможности поиска по имени пользователя.
Позволяет пользователям входить в систему, используя свой адрес электронной почты. Если эта функция включена, два пользователя не должны иметь одинаковые адреса электронной почты, а их имена пользователей не должны быть адресами электронной почты.
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.