Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
3.1 KiB
3.1 KiB
authelia
Authelia — централизованный сервис аутентификации для Kubernetes: forward-auth для ingress-nginx и OIDC-провайдер для сервисов (Gitea, Grafana, ArgoCD, Vault, MinIO и др.).
Что делает аддон
- разворачивает Authelia в отдельном namespace;
- создаёт ingress для портала входа (
authelia_host); - генерирует/использует конфигурацию доступа по доменам;
- включает OIDC-клиенты для выбранных сервисов;
- хранит чувствительные данные в
group_vars/all/vault.yml.
Быстрый старт
- Включите аддон в
group_vars/all/addons.yml:
addon_authelia: true
authelia_host: "auth.home.local"
authelia_domain: "home.local"
- Добавьте секреты в
group_vars/all/vault.yml:
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$..."
- Установите аддон:
make addon-authelia
Пример защиты ingress через forward-auth
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
[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
Проверка
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 (например из addonredis);disabled— без Redis (сессии в памяти).
Официальные ресурсы
- Официальный сайт: https://www.authelia.com/
- Официальная документация: https://www.authelia.com/integration/kubernetes/
- Версии Helm chart / ПО: https://artifacthub.io/packages/helm/authelia/authelia