7.2 KiB
Установка Authentik
Основан на https://docs.goauthentik.io/docs/installation/docker-compose
Параметры переменных в файле .env
AUTHENTIK_TAG # 2024.2.2
PG_PASS # пароль для PostgreSQL. Например: $(pwgen -s 40 1) или $(openssl rand -base64 40)
AUTHENTIK_SECRET_KEY # ключ для Authentik. Например: $(pwgen -s 50 1) или $(openssl rand -base64 50)
COMPOSE_PORT_HTTP # 80
COMPOSE_PORT_HTTPS # 443
COMPOSE_PORT_LDAP # 3389
# Настройка сервера SMTP для отправки сообщений
AUTHENTIK_EMAIL__HOST # имя почтового сервера. Например: mail.example.com
AUTHENTIK_EMAIL__PORT # порт почтового сервера. Например: 25
AUTHENTIK_EMAIL__USERNAME # учетная запись
AUTHENTIK_EMAIL__PASSWORD # пароль
AUTHENTIK_EMAIL__USE_TLS # использовать StartTLS. Например: false
AUTHENTIK_EMAIL__USE_SSL # использовать SSL. Например: false
AUTHENTIK_EMAIL__TIMEOUT # время ожидания сервера. Например: 10
AUTHENTIK_EMAIL__FROM # отправдлять от имени. Например: authentik@example.com
Запуск
git clone https://git.badms.ru/bms/authentik.git
cd authentik
# Предварительно отредактировать переменные
docker compose up -d
После запуска
Перейти по ссылке для первоначальной конфигруации: https://auth.example.com/if/flow/initial-setup/
Настройка Authentik провайдера LLDAP для ONLYOFFICE
Создание связей свойст
Customization > Property Mappings > Create
Name: LDAP-email
Object field: attributes.email
Expression: return list_flatten(ldap.get('mail'))
Name: LDAP-givenname
Object field: attributes.givenname
Expression: return list_flatten(ldap.get('givenname'))
Name: SAML-mail
SAML Attribute Name: mail
Friendly Name: mail
Expression: return user.attributes.get("email")
Name: SAML-givenName
SAML Attribute Name: givenName
Friendly Name: name
Expression: return user.attributes.get("givenname")
Name: SAML-sn
SAML Attribute Name: sn
Friendly Name: surename
Expression: return user.attributes.get("sn")
Создание провайдера
Applications > Providers > Create > SAML Provider
Name: Provider for ONLYOFFICE
Authentication flow: ---
Authorization flow: default-provider-authorization-implicit-consent (Authorize Application)
Protocol settings:
ACS URL: https://office.example.com/sso/acs
Issuer: https://office.example.com/sso/metadata
Service Provider Binding: Post
Audience: Audience
Advanced protocol settings:
Signing Certificate: authentik Self-signed Certificate
Verification Certificate: ---
Property mappings:
- SAML-mail
- SAML-givenName
- SAML-sn
NameID Property Mapping: ---
Assertion valid not before: minutes=-5
Assertion valid not on or after: minutes=5
Session valid not on or after: minutes=86400
Default relay state: ---
Digest algorithm: SHA256
Signature algorithm: SHA256
Создание приложения
Applications > Applications > Create
Name: onlyoffice
Slug: onlyoffice
Group: ---
Provider: Provider for ONLYOFFICE
Backchannel Providers: ---
Policy engine mode: any
UI settings:
Launch URL: ---
Icon: ---
Publisher: ---
Description: ---
Добавление пользователей и групп
Applications > Applications > onlyoffice> Policy/Group/User Bindings > Bind existing policy
Создание соединение с LLDAP
Directory > Federation and Social login > Create
Name: LLDAP-example.com
slug: lldap_example-com
- Enable
- Sync users
- User password writeback
- Sync groups
Connection settings:
Server URI: ldap://ldap.example.com
- Enable StartTLS
- Use Server URI for SNI verification
TLS Verification Certificate: ---
TLS Client authentication certificate: ---
Bind CN: uid=auth,ou=people,dc=example,dc=com
Bind Password:
Base DN: dc=example,dc=com
LDAP Attribute mapping:
User Property Mappings:
- authentik default LDAP Mapping: mail
- authentik default Active Directory Mapping: sn
- authentik default OpenLDAP Mapping: cn
- authentik default OpenLDAP Mapping: uid
- LDAP-email
- LDAP-givenname
Group Property Mappings:
- authentik default OpenLDAP Mapping: cn
Additional settings:
Group: ---
User path: LDAP/users
Addition User DN: ou=people
Addition Group DN: ou=groups
User object filter: (objectClass=person)
Group object filter: (objectClass=groupOfUniqueNames)
Group membership field: member
Object uniqueness field: uid
Настройка ONLYOFFICE
Сохранить XML файл из Authentik: Applications > Providers > Provider for ONLYOFFICE > Copy download URL
Загрузить полученный файл в ONLYOFFICE: Настройки > Интеграция > Единый вход
- Включить аутентификацию с помощью технологии единого входа
Настройки поставщика сервиса:
Выбрать файл загруженный ранее XML
Пользовательская надпись для кнопки входа: Single Sign-on
Идентификатор сущности поставщика учетных данных записей: https://office.example.com/sso/metadata
URL-адрес конечной точки единого входа idP: Привязка: POST - https://auth.example.com/application/saml/onlyoffice/sso/binding/post/
URL-адрес конечной точки единого выхода idP: Привязка: POST - https://auth.example.com/application/saml/onlyoffice/slo/binding/post/
Формат NameID: urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
Открытые сертификаты поставщика учетных записей:
Добавить сертификат: authentik Self-signed Certificate
- Проверять подпись ответов аутентификации
- Проверять подпись запросов выхода
- Проверять подпись ответов выхода
Стандартный алгоритм проверки подписи: rsa-sha1
Сертификаты поставщика сервиса:
Сопоставление аттрибутов:
Имя: givenName
Фамилия: sn
Email: mail