Restreignez l'accès à votre site Discourse avec une authentification HTTP Basic

Parfois, vous ne souhaitez pas que le grand public puisse accéder à votre instance Discourse pour le moment, par exemple lorsque vous préparez un site pour une migration.

NOTE : J’ai récemment rencontré des problèmes avec l’authentification de base, où certaines ressources statiques ne se chargeaient pas. Il pourrait être plus simple de configurer votre site pour exiger une connexion (login_required) en ajoutant DISCOURSE_LOGIN_REQUIRED: true dans la section env de votre fichier app.yml.

La configuration suivante affichera une simple fenêtre de confirmation du navigateur demandant un nom d’utilisateur et un mot de passe, commune à tous les visiteurs, qui sera requise avant qu’ils puissent accéder au site.

:information_source: Remarque : Les utilisateurs devront toujours effectuer l’inscription et la connexion normales sur Discourse.

Identifiants d’authentification de base

Générer un mot de passe chiffré

htpasswd -bn =username= =password=

Remarque : Vous aurez besoin de htpasswd pour cela. Sur Ubuntu/Debian, il se trouve dans le paquet apache2-utils. Si vous avez accès à une autre machine où htpasswd est installé, vous pouvez simplement l’exécuter là-bas. Si votre objectif est simplement d’empêcher les moteurs de recherche d’accéder au site, il n’y a aucune raison de ne pas utiliser le mot de passe d’exemple fourni ici.

L’utilisateur et le mot de passe chiffrés vont ici

Ajouter à app.yml

# authentification de 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 section after_bundle_exec modifie la configuration de nginx à l’intérieur du conteneur Discourse. Lorsque vous êtes prêt à mettre le site en production, supprimez simplement cette section et reconstruisez.

14 « J'aime »