Protéger accès répertoire web .htaccess pour my_webapp sous nginx

Bonjour,
Je souhaiterai protéger un répertoire web par un mot de passe et éventuellement un login. J’ai trouvé ce tutoriel sur openclassromms qui me convient bien avec l’aide d’un fichier .htaccess: Protégez un dossier avec un .htaccess - Concevez votre site web avec PHP et MySQL - OpenClassrooms. Mais d’après ce que j’ai compris cele ne fonctionne qu’avec apache et yuno fonctionne avec nginx.
Avez-vous donc des pistes pistes et des conseils à ce propos pour une utilisation avec nginx?
En vous remerciant.

Pourquoi ne pas installer l’application my webapp / custom webapp et restreindre les permissions aux utilisateurs (du coup la restruction par login/mot de passe se fera implicitement par le SSO) ?

Bonjour,
Effectivement je n’avais pas envisagé ce biais. Mais cela veut dire que je renonce à la possibilité que mon site soit public et je souhaite seulement restreindre l’accès à un dossier du site. A moins qu’il ne soit possible avec le SSO de contrôler l’accès à un seul répertoire du site? Merci pour votre réponse.

Huuu oui avec le nouveau système de permission de la 4.1 tu peux théoriquement rajouter des permissions pour une sous-url de ta webapp … Par contre j’avais pas réalisé que c’était pour un site avec également une partie publique, du coup ça complexifie un peu les choses même si ça reste faisable…

Il te faut éditer le fichier /etc/ssowat/conf.json.persistent et rajouter une règle custom dans la clé “permission” (attention c’est du json, il faut faire attention à la syntaxe et ça dépends un peu de ce qu’il y a déjà dans ton fichier …)

Tu peux/dois remplacer :

  • my_custom_webapp_secret_folder par le nom que tu veux (mais idéalement seulement des caractères alphanumériques + underscore _ …
  • pareil pour le label “My secret folder” mais là y’a un peu + de liberté. Le label est le nom affiché dans le portail utilisateur
  • le nom d’utilisateur autorisé à accéder à l’app (your_username)
  • "tondomaine.tld/ta_webapp/mon_dossier_secret" … c’est l’url où se situe ton dossier à protéger
  "permissions": {
    "my_custom_webapp_secret_folder": {
      "label": "My secret folder",
      "public": false,
      "users": ['your_username'],
      "auth_header": true,
      "show_tile": true,
      "uris": [
        "tondomaine.tld/ta_webapp/mon_dossier_secret"
      ]
    }
  }
1 Like

Oui merci beaucoup. Je vais faire cela!

Bonsoir,
Je me permets de rebondir sur cette dicussion, car la question m’intéresse.

Je cherche également à protéger l’accès à une custome_webapp par un mot de passe mais sans passer par le SSO car je ne peux pas créer des comptes pour chaque utilisateur (c’est pour un enseignement avec une vingtaine d’étudiants). L’idéal serait vraiment de pouvoir définir un couple identifiant/mot de passe pour une identification HTTP comme on le ferait avec un htaccess sur Apache.

Il me semble avec Nginx qu’on peut modifier le fichier de conf du site en ajoutant une directive auth_basic, mais je ne voudrais pas casser les fichiers générés par yunohost en les modifiant manuellement. Je préfère donc d’abord vous demander s’il y a une contre-indication à procéder comme ceci.

Merci d’avance pour vos réponses

1 Like

Non tu peux probablement faire ça, sache juste que Yunohost peut potentiellement écraser le fichier de conf nginx de l’app lorsque tu met l’app à jour (mais normalement te mettre le diff dans le log et faire une sauvegarde du fichier initial quelque part …)

Merci ! Je viens de le faire en suivant les instructions de la doc nginx, ça fonctionne très bien.
Je ferai attention lors des prochaines mises à jour.