Restringe el acceso a tu sitio de Discourse con autenticación HTTP básica

A veces no deseas que el público general pueda acceder a tu instancia de Discourse todavía, como cuando estás preparando un sitio para una migración.

NOTA: He tenido algunos problemas recientemente con la autenticación básica, en los que algunos activos estáticos no se cargaban. Podría ser más fácil simplemente configurar tu sitio para login_required agregando DISCOURSE_LOGIN_REQUIRED: true en la sección env de tu app.yml.

La siguiente configuración mostrará un simple cuadro de diálogo de confirmación del navegador que solicita nombre de usuario y contraseña, común para todos los visitantes, el cual será obligatorio antes de que puedan acceder al sitio.

:information_source: Nota: Los usuarios aún deberán realizar el registro y el inicio de sesión normales de Discourse.

Credenciales de autenticación básica

Generar contraseña encriptada

htpasswd -bn =username= =password=

Nota: Necesitarás htpasswd para esto. En Ubuntu/Debian, está en apache2-utils. Si tienes acceso a otra máquina con htpasswd instalado, puedes ejecutarlo allí. Si tu objetivo es simplemente mantener alejados a los motores de búsqueda, no hay razón para no usar la contraseña de ejemplo aquí.

El usuario/contraseña encriptado va aquí

Agregar a app.yml

# autenticación básica
  after_bundle_exec:
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic on"
       to: "auth_basic on"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "# auth_basic_user_file /etc/nginx/htpasswd"
       to: "auth_basic_user_file /etc/nginx/htpasswd"
    - replace:
       filename: "/etc/nginx/conf.d/discourse.conf"
       from: "location = /srv/status {"
       to: "location = /srv/status {
           auth_basic off;"
    - file:
       path: "/etc/nginx/htpasswd"
       contents: |
         =auth_string=    

La sección after_bundle_exec modifica la configuración de nginx dentro del contenedor de Discourse. Cuando estés listo para ponerlo en producción, simplemente elimina esta sección y reconstruye.

14 Me gusta