Herramientas de usuario

Herramientas del sitio


informatica:software:aplicaciones_web:authelia

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:software:aplicaciones_web:authelia [2023/11/15 20:45] tempwininformatica:software:aplicaciones_web:authelia [2023/11/21 10:24] (actual) – [Authelia] tempwin
Línea 5: Línea 5:
   * [[https://www.authelia.com/|Web oficial]]   * [[https://www.authelia.com/|Web oficial]]
  
 +{{ https://www.authelia.com/overview/prologue/architecture/architecture-diagram.png |}}
 ===== Instalación ===== ===== Instalación =====
  
Línea 275: Línea 276:
   * Authelia está accesible por el proceso de Nginx con el nombre de host ''authelia'' en el puerto 9091(la URL sería http://authelia:9091). Adaptar a nuestro caso particular.   * Authelia está accesible por el proceso de Nginx con el nombre de host ''authelia'' en el puerto 9091(la URL sería http://authelia:9091). Adaptar a nuestro caso particular.
   * La URL a la que quieres acceder a través de Authelia es https://auth.example.com.  Adaptar a nuestro caso particular.   * La URL a la que quieres acceder a través de Authelia es https://auth.example.com.  Adaptar a nuestro caso particular.
 +
 +==== Usando la imagen de docker nginx-proxy ====
 +
 +Si el servicio que queremos proteger con Authelia es https://app.midominio.com, tenemos que crear un fichero llamado como el dominio (''app.midominio.com'') en la carpeta ''/etc/nginx/vhost.d/'' del contenedor con el siguiente contenido:
 +
 +<code>
 +## Start of configuration add by letsencrypt container
 +location ^~ /.well-known/acme-challenge/ {
 +    auth_basic off;
 +    auth_request off;
 +    allow all;
 +    root /usr/share/nginx/html;
 +    try_files $uri =404;
 +    break;
 +}
 +## End of configuration add by letsencrypt container
 +## Virtual endpoint created by nginx to forward auth requests.
 +location /authelia {
 +    ## Essential Proxy Configuration
 +    internal;
 +    proxy_pass http://authelia:9091/api/verify;
 +
 +    ## Headers
 +    ## The headers starting with X-* are required.
 +    proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
 +    proxy_set_header X-Forwarded-Method $request_method;
 +    proxy_set_header X-Forwarded-Proto $scheme;
 +    proxy_set_header X-Forwarded-Host $http_host;
 +    proxy_set_header X-Forwarded-Uri $request_uri;
 +    proxy_set_header X-Forwarded-For $remote_addr;
 +    proxy_set_header Content-Length "";
 +    proxy_set_header Connection "";
 +
 +    ## Basic Proxy Configuration
 +    proxy_pass_request_body off;
 +    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; # Timeout if the real server is dead
 +    proxy_redirect http:// $scheme://;
 +    proxy_http_version 1.1;
 +    proxy_cache_bypass $cookie_session;
 +    proxy_no_cache $cookie_session;
 +    proxy_buffers 4 32k;
 +    client_body_buffer_size 128k;
 +
 +    ## Advanced Proxy Configuration
 +    send_timeout 5m;
 +    proxy_read_timeout 240;
 +    proxy_send_timeout 240;
 +    proxy_connect_timeout 240;
 +}
 +
 +## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource.
 +auth_request /authelia;
 +
 +## Set the $target_url variable based on the original request.
 +
 +## Comment this line if you're using nginx without the http_set_misc module.
 +#set_escape_uri $target_url $scheme://$http_host$request_uri;
 +
 +## Uncomment this line if you're using NGINX without the http_set_misc module.
 +set $target_url $scheme://$http_host$request_uri;
 +
 +## Save the upstream response headers from Authelia to variables.
 +auth_request_set $user $upstream_http_remote_user;
 +auth_request_set $groups $upstream_http_remote_groups;
 +auth_request_set $name $upstream_http_remote_name;
 +auth_request_set $email $upstream_http_remote_email;
 +
 +## Inject the response headers from the variables into the request made to the backend.
 +proxy_set_header Remote-User $user;
 +proxy_set_header Remote-Groups $groups;
 +proxy_set_header Remote-Name $name;
 +proxy_set_header Remote-Email $email;
 +
 +## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal.
 +error_page 401 =302 https://portal.authelia.com/?rd=$target_url;
 +</code>
 +
 +Donde:
 +
 +  * ''http://authelia:9091/'' es el contenedor con Authelia.
 +  * ''https://portal.authelia.com/'' es el servicio al que redirigirá si hay error
informatica/software/aplicaciones_web/authelia.1700077545.txt.gz · Última modificación: por tempwin