¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Authelia
Aplicación web que proporciona un servidor y portal para la autenticación y autorización. Ofrece doble factor de autenticación (2FA) y Single Sign-On (SSO) para nuestras aplicaciones web mediante un portal. Compañero ideal de los proxies inversos.
Instalación
Docker
Ejemplo de docker-compose.yml para usar con Docker Compose:
--- services: authelia: image: authelia/authelia container_name: authelia user: 1000:1000 volumes: - ./config:/config expose: - 9091 environment: - TZ=Europe/Madrid restart: unless-stopped
Crearemos la carpeta config con los siguientes ficheros en su interior:
configuration.yml: base de la configuración de Authelia.users.yml: base de datos con los usuarios que tendrán acceso a través de Authelia.
Configuración
Ejemplo de fichero configuration.yml:
############################################################################### # Authelia Configuration # ############################################################################### theme: auto jwt_secret: B0346B15DD27774E98C1E4E82562BFDB2081E8CB66C78751983380B0F1211F3C # Opcional: # default_redirection_url: https://public.midominio.com/ server: host: 0.0.0.0 port: 9091 # path: "" # buffers: # read: 4096 # write: 4096 # enable_pprof: false # enable_expvars: false # disable_healthcheck: false # tls: # key: "" # certificate: "" #ntp: # address: "10.0.1.1:123" # version: 3 # max_desync: 3s # disable_startup_check: false # disable_failure: true log: level: debug file_path: /config/authelia.%d.log totp: issuer: tempwin.net period: 30 skew: 1 authentication_backend: file: path: /config/users.yml password: algorithm: argon2 argon2: variant: argon2id iterations: 3 memory: 65536 parallelism: 4 key_length: 32 salt_length: 16 access_control: default_policy: two_factor rules: - domain: authelia.midominio.com policy: bypass - domain: sub1.midominio.com policy: one_factor - domain: sub2.midominio.com policy: two_factor session: name: authelia_session secret: B0346B15DD27774E98C1E4E82562BFDB2081E8CB66C78751983380B0F1211F3C #Visita https://www.grc.com/passwords.htm y copia el numero largo de la ventana que se llama 64 random hexadecimal characters (0-9 and A-F): expiration: 3600 # 1 hour inactivity: 300 # 5 minutes domain: tempwin.net # tu nombre de dominio. No es el subdominio, sino que es el fulanito.es regulation: max_retries: 3 find_time: 10m ban_time: 12h storage: encryption_key: a2QDCXPRbQaxcaUH8DJ2 local: path: /config/db.sqlite3 notifier: disable_startup_check: true #true/false smtp: username: usuario password: contraseña host: smtp.servidor.com port: 587 sender: noreply@authelia.midominio.com subject: "[Authelia] {title}"
jwt_secret: el secreto a usar para generar tokens JWT cuando se valida por e-mail. Al menos 64 caracteres alfanuméricos aleatorios. Se puede hacer de varias maneras:- Con OpenSSL:
openssl rand -hex 32 - Usando esta web
- Usando una utilidad de la imagen Docker de Authelia:
docker run --rm authelia/authelia:latest authelia crypto rand --length 64 --charset alphanumeric
default_redirection_url: dominio que usamos para nuestro servidor de Autheliaaccess_control: subdominios que queremos gestionar con Authelia. Las políticas a establecer enrulesson:bypass: permite el tráfico sin solicitar nada.one_factor: requiere iniciar sesión con las credenciales de Authelia.two_factor: además de las credenciales de Authelia, se requiere OTP (One-time password).
- session:
secret: secreto complejo de al menos 16 caracteres.domain: dominio base al que pertenecen los subdominios que vamos a gestionar con Authelia.
storage:encryption_key: clave segura
notifier: datos con nuestro servidor de correo. Si no está bien configurado, no podremos activar el 2FA.
Siempre que se modifique el fichero de configuración (para añadir nuevos dominios, por ejemplo) es necesario reiniciar el contenedor. Lo más fácil es docker compose restart
La configuración se puede validar antes de aplicar mediante el binario:
authelia validate-config --config configuration.yml
Ejemplo de fichero users.yml:
--- ############################################################### # Users Database # ############################################################### # This file can be used if you do not have an LDAP set up. # List of users users: pepito: disabled: false displayname: "Pepito" password: "$argon2id$v=19$m=65536,t=3,p=4$VxEGhnJdr1BrNGzljw5123A$w1YEUhfBqTiA93l3ADlzigjLgeS6c1iPUXi5IvCCw4g" email: pepito.grillo@example.com groups: - admins - dev
Dentro del bloque users podemos definir tantos usuarios como queramos.
La contraseña no debe ser en texto plano sino estar cifrada. Podemos usar un pequeño script que proporciona la propia imagen de Docker de Authelia:
docker run --rm authelia/authelia:latest authelia hash-password -- 'nuestra_contraseña'
Devolverá algo commo:
$argon2id$v=19$m=65536,t=3,p=4$KzRQdnFKVGxrcFNwRGNheA$Gf4geiNHilF5IE/X1oIyIOQA1ePbICrMbtXKY3Sji7g
Esto tendremos que ponerlo en el campo password.
Por último, el correo debe ser válido, ya que para activar el 2FA se enviará un mail de activación. Los grupos se pueden dejar como están, porque es para configuraciones más avanzadas.
