htdigest sous Lighttpd

Les htaccess n’existent pas sous Lighttpd, mais il y a un équivalent de taille. Vérifiez avant de commencer que le module mod_auth est bien chargé.
Nous allons dans un premier temps générer (avec -c pour la première fois, comme un htaccess) un fichier contenant les identifiants pour être autoriser à consulter tel ou tel site :

Command htdigest
htdigest -c /etc/lighttpd/.passwd 'Authorized users only' deimos

 

Je créer ici l’utilisateur deimos. Le realm (ici ‘Authorized users only’) va nous permettre de différencier les différents fichiers de login/mot de passe que nous allons pouvoir avoir car nous ne pouvons en spécifier qu’un seul pour tout le serveur.

Ensuite on rajoute ces lignes dans la configuration global de lighttpd :

Configuration File /etc/lighttpd/lighttpd.conf
  1. auth.backend = "htdigest"
  2. auth.backend.htdigest.userfile = "/etc/lighttpd/.passwd"
  3. auth.debug = 2

 

Puis je rajoute à l’endroit qui m’intéresse la protection :

Configuration File /etc/lighttpd/lighttpd.conf
  1. auth.require = ( "/docs/" =>
  2.    (
  3.       "method" => "digest",
  4.       "realm" => "Authorized users only",
  5.       "require" => "valid-user"
  6.    )
  7. )

 

On redémarre lighty et c’est bon. L’exemple ci dessus montre comment ajouter la restriction à l’endroit qui nous intéresse, nous allons donc le faire en modifiant notre conf d’awstats :

Configuration File /etc/lighttpd/conf-available/50-awstats.conf
  1. alias.url = (
  2.                 "/awstats-icon" => "/usr/share/awstats/icon/",
  3.                 "/awstats/" => "/usr/lib/cgi-bin/",
  4.                 "/icon/" => "/usr/share/awstats/icon/"
  5.               )
  6. # provide awstats cgi-bin access
  7. $HTTP["url"] =~ "/awstats/" {
  8.     cgi.assign = ( ".pl" => "/usr/bin/perl" )
  9.     auth.require = ( "/awstats/" =>
  10.         (
  11.         "method" => "digest",
  12.         "realm" => "Trusted users only",
  13.         "require" => "valid-user"
  14.         )
  15.     )
  16. }