Herramientas de usuario

Herramientas del sitio


informatica:software:aplicaciones_web:authelia

¡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.

Ejemplo de fichero configuration.yml:

###############################################################################
#                           Authelia Configuration                            #
###############################################################################

theme: dark 

jwt_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):

default_redirection_url: https://heimdal.tempwin.net/ #Aqui hará una redireccion si no existe ningun dominio en nuestro archivo

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:
        #  password_reset:
        #    disable: false
        #  refresh_interval: 5m
  file:
    path: /config/users.yml 
    password:
      algorithm: argon2id
      iterations: 1
      key_length: 32
      salt_length: 16
      memory: 1024
      parallelism: 8

access_control:
  default_policy: two_factor # doble factor por defecto
  rules:
    - domain: heimdal.tempwin.net #Debe ser tu subdominio creado para authelia
      policy: bypass
    - domain: rss.tempwin.net 
      policy: one_factor
      #    - domain:
      #       - "metube.conkernel.tech" #Debes poner el dominio de uno de los proxys inversos si quieres que tenga solo una validación de doble factor tipo usuario/contraseña y codigo cambiante cada 30 segundos
      #      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:
  local:
    path: /config/db.sqlite3 
    encryption_key: a2QDCXPRbQaxcaUH8DJ2 
  
notifier:
  filesystem:
    filename: /config/notification.txt  
  • jwt_secret: token autogenerado lo más complejo posible. 64 caracteres.
  • default_redirection_url: dominio que usamos para nuestro servidor de Authelia
  • access_control: subdominios que queremos gestionar con Authelia. Las políticas a establecer en rules son:
    • 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

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.

informatica/software/aplicaciones_web/authelia.1700038425.txt.gz · Última modificación: por tempwin