- Создана новая организационная структура с эмодзи-папками - Добавлена система Inbox для быстрого захвата идей - Созданы шаблоны для всех типов заметок с YAML метаданными - Перенесен весь контент из старой структуры в новую - Добавлен главный дашборд с динамическими запросами - Создано подробное руководство по использованию системы - Техническая документация реорганизована по типам Основные улучшения: ✅ Inbox-first подход для новых заметок ✅ Тематическая организация по 8 областям знаний ✅ Шаблоны с метаданными для структурированности ✅ Система связей между заметками ✅ Динамические дашборды с аналитикой ✅ Централизованная техническая документация без дублирования
11 KiB
11 KiB
Описание
Authelia Authentication - централизованная система аутентификации и авторизации для всех сервисов экосистемы aepif.ru. Обеспечивает Single Sign-On (SSO), двухфакторную аутентификацию и гранулярное управление доступом.
Архитектура системы
graph TB
A[User Request] --> B[Traefik Reverse Proxy]
B --> C{Authelia Middleware}
C -->|Authenticated| D[Target Service]
C -->|Not Authenticated| E[Authelia Login Page]
E --> F[User Authentication]
F --> G[Session Storage - Redis]
F --> H[User Database - File]
G --> I[Session Validation]
I --> D
subgraph "Authelia Container"
E
F
I
J[TOTP 2FA]
K[Password Reset]
end
subgraph "Redis Container"
G
L[Session Data]
end
subgraph "Configuration"
H
M[Access Control Rules]
N[Notification Settings]
end
Основные компоненты
Authelia Server
- Назначение: Центральный сервер аутентификации
- Домен:
auth.aepif.ru - Порт: 9091
- Технология: Go-based authentication server
- Особенности:
- Forward Authentication integration с Traefik
- TOTP двухфакторная аутентификация
- Password reset через файловые уведомления
- Детальные политики доступа
Redis Session Store
- Назначение: Хранение пользовательских сессий
- Технология: Redis 7 Alpine
- Контейнер:
auth_redis - Особенности:
- Персистентное хранение сессий
- Защита паролем (
Ll8qlQ3rgBFo4Syq) - Быстрый доступ к данным сессий
- Автоматическое истечение сессий
File-based User Database
- Назначение: Хранение пользователей и их данных
- Файл:
/config/users_database.yml - Особенности:
- Argon2id хеширование паролей
- Группы пользователей для управления доступом
- Email адреса для уведомлений
Конфигурация
Docker Compose
Основная конфигурация в /DOCKER/auth/docker-compose.yml:
services:
redis:
image: redis:7-alpine
container_name: auth_redis
command: redis-server --requirepass Ll8qlQ3rgBFo4Syq
authelia:
image: authelia/authelia:latest
container_name: authelia
depends_on:
- redis
volumes:
- ./authelia:/config
networks:
- proxy # Подключение к Traefik
Основная конфигурация
Файл /DOCKER/auth/authelia/configuration.yml:
jwt_secret: 4odTQ0TqW2Ej8m8Cm3K6Wn3VTvg09Mb2Yi4CUzuIPUsHB3fpF54+NbIAqo6+CREA
default_redirection_url: https://notes.aepif.ru
server:
host: 0.0.0.0
port: 9091
totp:
issuer: aepif.ru
session:
domain: aepif.ru
expiration: 1h
inactivity: 5m
redis:
host: redis
port: 6379
password: Ll8qlQ3rgBFo4Syq
Политики доступа
Access Control Rules
Текущие правила доступа:
access_control:
default_policy: deny # По умолчанию запрещен доступ
rules:
- domain: notes.aepif.ru
policy: one_factor # Требует логин/пароль
- domain: git.aepif.ru
policy: bypass # Собственная авторизация Gitea
- domain: webhook.aepif.ru
policy: bypass # API с токеном
- domain: auth.aepif.ru
policy: bypass # Сама страница входа
Типы политик
- bypass: Доступ без аутентификации через Authelia
- one_factor: Требует только логин/пароль
- two_factor: Требует логин/пароль + TOTP код
- deny: Полный запрет доступа
Пользователи и группы
Структура пользователей
Файл users_database.yml:
users:
admin:
displayname: "Administrator"
password: "$argon2id$..." # Хешированный пароль Argon2id
email: epifantsev1aa@gmail.com
groups:
- admins # Администраторская группа
- users # Базовая группа пользователей
Управление паролями
- Хеширование: Argon2id (высокий уровень безопасности)
- Reset процедура: Через файловые уведомления
- Требования: Минимальная длина, сложность
Двухфакторная аутентификация
TOTP Configuration
- Issuer:
aepif.ru - QR Code: Автоматическая генерация для настройки
- Backup Codes: Коды восстановления доступа
- Приложения: Google Authenticator, Authy, 1Password
Настройка TOTP
- Первый вход с логином/паролем
- Сканирование QR кода мобильным приложением
- Подтверждение TOTP кода
- Сохранение backup кодов
Интеграция с Traefik
Forward Auth Middleware
Traefik labels для защищенных сервисов:
labels:
- traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://auth.aepif.ru
- traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true
- traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups,Remote-Name,Remote-Email
Headers передача
Authelia передает в backend сервисы:
- Remote-User: Username аутентифицированного пользователя
- Remote-Groups: Группы пользователя
- Remote-Name: Display name
- Remote-Email: Email адрес
Сессии и безопасность
Session Management
- Время жизни: 1 час активной сессии
- Неактивность: 5 минут до автоматического выхода
- Хранение: Redis с паролем
- Domain:
.aepif.ru(работает для всех поддоменов)
Regulation (Rate Limiting)
Защита от брутфорса:
regulation:
max_retries: 3 # Максимум попыток входа
find_time: 2m # Период для подсчета попыток
ban_time: 5m # Время блокировки
Безопасность
- JWT Secret: Секретный ключ для подписи токенов
- Session Secret: Ключ для шифрования сессий
- Encryption Key: Ключ для шифрования хранилища
- Secure Headers: Автоматические заголовки безопасности
Уведомления
File Notifier
- Файл:
/config/notification.txt - Назначение: Password reset уведомления
- Формат: Простой текстовый файл
Email Integration (Future)
Для полноценных email уведомлений потребуется настройка SMTP:
- Password reset emails
- 2FA setup notifications
- Security alerts
Мониторинг
Health Checks
# Проверка доступности Authelia
curl -I https://auth.aepif.ru
# Проверка API здоровья
curl https://auth.aepif.ru/api/health
# Логи Authelia
docker logs authelia -f
# Проверка Redis
docker exec auth_redis redis-cli -a Ll8qlQ3rgBFo4Syq ping
Metrics
- Authentication attempts: Успешные/неуспешные попытки входа
- Session statistics: Активные сессии, время жизни
- 2FA usage: Статистика использования TOTP
- Access denials: Заблокированные запросы
Структура файлов
/DOCKER/auth/
├── docker-compose.yml # Конфигурация Authelia + Redis
├── authelia/ # Конфигурация Authelia
│ ├── configuration.yml # Основная конфигурация
│ ├── users_database.yml # База пользователей
│ ├── db.sqlite3 # SQLite база данных (для хранения состояния)
│ └── notification.txt # Файл уведомлений
└── volumes/
└── redis_data/ # Данные Redis
Troubleshooting
Общие проблемы
- Не работает аутентификация: Проверить сеть
proxy, статус контейнеров - Сессии не сохраняются: Проверить подключение к Redis
- TOTP не работает: Синхронизировать время на сервере и устройстве
- Password reset: Проверить файл уведомлений
Логи отладки
# В configuration.yml для детальных логов
log:
level: debug
Backup и восстановление
Критически важные данные
- configuration.yml: Основная конфигурация
- users_database.yml: База пользователей
- db.sqlite3: Состояние системы (2FA secrets, etc.)
- redis_data: Активные сессии
Процедура backup
# Backup конфигурации Authelia
tar czf authelia_config_backup.tar.gz -C /DOCKER/auth/authelia .
# Backup Redis данных
docker exec auth_redis redis-cli -a Ll8qlQ3rgBFo4Syq BGSAVE
Связанные сервисы
- Мой сервер/Traefik Reverse Proxy/Обзор системы - интеграция через Forward Auth middleware
- Мой сервер/Second Mind Setup/Обзор системы - защита доступа к заметкам
- Redis - хранение сессий и состояния
Связанные документы
- Authelia Authentication - Конфигурации - детальные настройки всех компонентов
- Authelia Authentication - Развертывание - пошаговая установка
- Authelia Authentication - Администрирование - управление пользователями и мониторинг