Restringir o acesso ao seu site Discourse com autenticação HTTP Basic

Às vezes, você não deseja que o público em geral tenha acesso à sua instância do Discourse imediatamente, como quando está preparando um site para uma migração.

NOTA: Recentemente, tive alguns problemas com autenticação básica, em que alguns ativos estáticos não estavam sendo carregados. Pode ser mais fácil simplesmente configurar seu site para login_required adicionando DISCOURSE_LOGIN_REQUIRED: true na seção env do seu app.yml.

A configuração a seguir exibirá um simples diálogo de confirmação no navegador solicitando nome de usuário e senha, comum a todos os visitantes, que será necessário antes que eles possam acessar o site.

:information_source: Nota: Os usuários ainda precisarão realizar o registro e o login normais do Discourse.

Credenciais de autenticação básica

Gerar senha criptografada

htpasswd -bn =username= =password=

Nota: Você precisará do htpasswd para isso. No Ubuntu/Debian, ele está no pacote apache2-utils. Se tiver acesso a outra máquina com htpasswd instalado, pode executá-lo lá. Se seu objetivo for apenas impedir que mecanismos de busca acessem, não há motivo para não usar a senha de exemplo aqui.

Usuário/senha criptografados vão aqui

Adicionar ao app.yml

# autenticação 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=    

A seção after_bundle_exec altera a configuração do nginx dentro do contêiner do Discourse. Quando estiver pronto para colocar em produção, basta excluir esta seção e reconstruir.

14 curtidas