Sympa est un gestionnaire de listes de diffusion.
Pour configurer le SSO avec Sympa, utiliser l'authentification magique : une URL spéciale SSO est protégée par LL::NG, Sympa affichera un bouton pour les utilisateurs souhaitant utiliser cette fonctionnalité.
Éditer le fichier “auth.conf” de Sympa, par exemple :
vi /etc/sympa/auth.conf
et le remplir :
generic_sso
        service_name                   Centralized auth service
        service_id                          lemonldapng
        email_http_header            HTTP_MAIL
        netid_http_header             HTTP_AUTH_USER
        internal_email_by_netid    1
        logout_url                          http://sympa.example.com/wws/logout
Noter que si on utilise FastCGI, il faut redémarrer Apache pour activer les changements.
On peut aussi utiliser <portal>?logout=1 comme URL de déconnexion pour supprimer la session LemonLDAP::NG lorsque la déconnexion est demandée.
Configurer l'hôte virtuel Sympa comme n'importe quel autre hôte virtuel protégé mais ne protéger que l'authentification magique.
service_id defini dans la configuration Apache de Sympa.
<VirtualHost *:80> ServerName sympa.example.com <Location /wws/sso_login/lemonldapng> PerlHeaderParserHandler Lemonldap::NG::Handler </Location> ... </VirtualHost>
server {
  listen 80;
  server_name sympa.example.com;
  root /path/to/application;
  # Requête interne d'authentification
  location = /lmauth {
    internal;
    include /etc/nginx/fastcgi_params;
    fastcgi_pass unix:/var/run/llng-fastcgi-server/llng-fastcgi.sock;
    # 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;
  } 
 
  # Requêtes clients
  location /wws/sso_login/lemonldapng {
    auth_request /lmauth;
    auth_request_set $lmremote_user $upstream_http_lm_remote_user;
    auth_request_set $lmlocation $upstream_http_location;
    error_page 401 $lmlocation;
    try_files $uri $uri/ =404;
 
    ...
 
    include /etc/lemonldap-ng/nginx-lua-headers.conf;
  }
  location / {
    try_files $uri $uri/ =404;
  }
}
Aller dans le manager et créer un nouvel hôte virtuel pour Sympa.
Configurer les règles d'accès et definir les en-têtes suivants :