Files
K3S/addons/authelia/README.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

86 lines
3.1 KiB
Markdown

# authelia
Authelia — централизованный сервис аутентификации для Kubernetes: `forward-auth` для `ingress-nginx` и OIDC-провайдер для сервисов (Gitea, Grafana, ArgoCD, Vault, MinIO и др.).
## Что делает аддон
- разворачивает Authelia в отдельном namespace;
- создаёт ingress для портала входа (`authelia_host`);
- генерирует/использует конфигурацию доступа по доменам;
- включает OIDC-клиенты для выбранных сервисов;
- хранит чувствительные данные в `group_vars/all/vault.yml`.
## Быстрый старт
1. Включите аддон в `group_vars/all/addons.yml`:
```yaml
addon_authelia: true
authelia_host: "auth.home.local"
authelia_domain: "home.local"
```
2. Добавьте секреты в `group_vars/all/vault.yml`:
```yaml
authelia_jwt_secret: "<openssl rand -base64 64>"
authelia_session_secret: "<openssl rand -base64 64>"
authelia_storage_encryption_key: "<openssl rand -base64 32>"
authelia_oidc_hmac_secret: "<openssl rand -base64 48>"
authelia_user_admin_password_hash: "$argon2id$..."
```
3. Установите аддон:
```bash
make addon-authelia
```
## Пример защиты ingress через forward-auth
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myservice
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/auth-url: "http://authelia.authelia.svc.cluster.local:9091/api/authz/forward-auth"
nginx.ingress.kubernetes.io/auth-signin: "http://auth.home.local/?rd=$scheme://$host$escaped_request_uri"
```
## Пример OIDC для Grafana
```ini
[auth.generic_oauth]
enabled = true
name = Authelia
client_id = grafana
client_secret = <секрет из vault>
scopes = openid profile email groups
auth_url = http://auth.home.local/api/oidc/authorization
token_url = http://auth.home.local/api/oidc/token
api_url = http://auth.home.local/api/oidc/userinfo
```
## Проверка
```bash
kubectl -n authelia get pods
kubectl -n authelia logs -l app.kubernetes.io/name=authelia --tail=100
```
## Режим Redis (встроенный или внешний)
Выбор задаётся переменной `authelia_redis_mode`:
- `auto` — внешний Redis при `addon_redis: true`, иначе встроенный Redis чарта;
- `internal` — всегда встроенный Redis;
- `external_redis` — всегда внешний Redis (например из addon `redis`);
- `disabled` — без Redis (сессии в памяти).
## Официальные ресурсы
- Официальный сайт: [https://www.authelia.com/](https://www.authelia.com/)
- Официальная документация: [https://www.authelia.com/integration/kubernetes/](https://www.authelia.com/integration/kubernetes/)
- Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/authelia/authelia](https://artifacthub.io/packages/helm/authelia/authelia)