Commit 4dc69345 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Añade acceso autenticado para REDMIC

Habilita un router Traefik para permitir el acceso directo mediante
un token de 'service account' (generado desde Grafana). Sólo se permite
el paso si la petición procede desde el dominio correcto y en la URL se
incluye el token en el subdominio, para evitar accesos no autorizados.
parent 93c2511a
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -29,7 +29,10 @@ POSTGRES_USER=user
POSTGRES_PASS=pass
POSTGRES_DB=database

REDMIC_AUTH_TOKEN=changeme

TRAEFIK_PROTOCOL=https
TRAEFIK_ENTRYPOINT=http
TRAEFIK_SUBDOMAIN=grafana
PUBLIC_HOSTNAME=localhost

+9 −1
Original line number Diff line number Diff line
@@ -54,8 +54,16 @@ services:
      replicas: ${REPLICAS:-1}
      labels:
        traefik.enable: ${TRAEFIK_ENABLE:-true}
        traefik.http.routers.grafana.entrypoints: ${TRAEFIK_ENTRYPOINT:-http}

        traefik.http.routers.grafana.entrypoints: ${TRAEFIK_ENTRYPOINT}
        traefik.http.routers.grafana.rule: Host(`${TRAEFIK_SUBDOMAIN}.${PUBLIC_HOSTNAME}`)

        traefik.http.routers.grafana-redmic-embed.entrypoints: ${TRAEFIK_ENTRYPOINT}
        traefik.http.routers.grafana-redmic-embed.rule: Host(`${TRAEFIK_SUBDOMAIN}-${REDMIC_AUTH_TOKEN}.${PUBLIC_HOSTNAME}`) && HeadersRegexp(`Referer`, `.*${PUBLIC_HOSTNAME}/`)
        traefik.http.middlewares.grafana-redmic-auth-header.headers.customrequestheaders.Authorization: Bearer ${REDMIC_AUTH_TOKEN}
        traefik.http.middlewares.grafana-redmic-csp-header.headers.customresponseheaders.Content-Security-Policy: frame-ancestors ${PUBLIC_HOSTNAME}
        traefik.http.routers.grafana-redmic-embed.middlewares: grafana-redmic-auth-header, grafana-redmic-csp-header

        traefik.http.services.grafana.loadbalancer.server.port: ${GF_SERVER_HTTP_PORT}
      restart_policy:
        delay: ${RESTART_DELAY:-10s}