Table of Contents

Agent AuthBasic

Présentation

L'agent AuthBasic est un agent spécial qui utilise l'authentification web basique pour authentifier dans un hôte virtuel et qui utilise ensuite les règles d'autorisation pour valider les accès à l'hôte virtuel.

L'agent envoie un en-tête WWW-Authenticate au client pour demander le couple compte-mot-de-passe et ensuite le vérifie en utilisant le service web <a1>SOAP</a1> getCookies. Lorsque la session est validée, l'agent examine les autorisations comme un agent standard.

Ce peut être pratique pour autoriser une application cliente à accéder à un hôte virtuel avec un authentifiant en envoyant un en-tête basique.

Configuration

Hôte virtuel

Apache

Configurer l'hôte virtuel comme n'importe quel autre hôte virtuel protégé mais utiliser l'agent AuthBasic au lieu de l'agent par défaut.

PerlModule Lemonldap::NG::Handler::Specific::AuthBasic
<VirtualHost *:80>
       ServerName basic.example.com
 
       # Load AuthBasic Handler
       PerlHeaderParserHandler Lemonldap::NG::Handler::Specific::AuthBasic
 
       ...
 
</VirtualHost>
Si le portail LemonLDAP::NG est protégé par SSL avec un certificat auto-signé, on peut ajouter cette ligne pour l'accepter :
PerlSetEnv PERL_LWP_SSL_VERIFY_HOSTNAME 0

Nginx

Since 1.9.6, LLNG FastCGI server can handle AuthBasic handler. To call it, you just have to add fastcgi_param LLTYPE authbasic; in the FastCGI server call and remove error_page 401 directive:

location = /lmauth {
  internal;
  include /etc/nginx/fastcgi_params;
  fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
  fastcgi_param LLTYPE authbasic;

  # Ignorer les données postées
  fastcgi_pass_request_body  off;
  fastcgi_param CONTENT_LENGTH "";

  # Conserver le nom d'hôte original
  fastcgi_param HOST $http_host;

  # Conserver la requête originale (le serveur LLNG va recevoir /llauth)
  fastcgi_param X_ORIGINAL_URI  $request_uri;
}
location / {
  ...
  ######################################
  # CALLING AUTHENTICATION         #
  ######################################
  auth_request /lmauth;
  auth_request_set $lmremote_user $upstream_http_lm_remote_user;
  auth_request_set $lmlocation $upstream_http_location;
  # Remove this for AuthBasic handler
  #error_page 401 $lmlocation;
  ...
}

Paramètres de l'agent

Aucun paramètres n'est requis. Il faut en revanche autoriser le service web des sessions, voir le backend de sessions SOAP.