Proteggi l'accesso al tuo sito Discourse con l'autenticazione HTTP Basic

A volte non desideri che il pubblico generale possa accedere alla tua istanza di Discourse, ad esempio quando stai preparando un sito per una migrazione.

NOTA: Di recente ho avuto alcuni problemi con l’autenticazione di base, in cui alcune risorse statiche non venivano caricate. Potrebbe essere più semplice configurare il sito per login_required aggiungendo DISCOURSE_LOGIN_REQUIRED: true nella sezione env del tuo file app.yml.

La configurazione seguente mostrerà una semplice finestra di conferma del browser che richiede nome utente e password, comune a tutti i visitatori, e che sarà richiesta prima che possano accedere al sito.

:information_source: Nota: Gli utenti dovranno comunque effettuare la normale registrazione e il login su Discourse.

Credenziali per l’autenticazione di base

Genera la password cifrata

htpasswd -bn =username= =password=

Nota: Per questo avrai bisogno di htpasswd. Su Ubuntu/Debian si trova nel pacchetto apache2-utils. Se hai accesso a un’altra macchina con htpasswd installato, puoi eseguirlo lì. Se il tuo obiettivo è semplicemente impedire l’accesso ai motori di ricerca, non c’è motivo di non utilizzare la password di esempio qui.

Inserisci qui l’utente/password cifrati

Aggiungi a app.yml

# autenticazione di base
  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 sezione after_bundle_exec modifica la configurazione di nginx all’interno del contenitore di Discourse. Quando sei pronto per andare online, elimina semplicemente questa sezione e ricostruisci.

14 Mi Piace