Table des matières

Authentification sur la base LDAP de SME d'un serveur apache externe

Ça y est, SME8 permet d'utiliser l'annuaire LDAP pour authentifier les utilisateurs. Trop top. Ce guide explique comment y connecter un serveur apache externe.

Pour ça, on va utiliser le module mod_authnz_ldap (inclus dans le paquet httpd sur CentOS).

Sur SME, l'authentification LDAP n'est possible depuis un hôte autre que localhost que si la connexion est sécurisée (SSL sur port 636 ou TLS sur port 389). On va donc dans un premier temps copier notre certificat du serveur SME sur notre serveur apache, pour que la connexion puisse être validée. Ce certificat sera placé par exemple dans /etc/pki/tls/certs/ca-sme.pem. On ajoute maintenant un fragment de configuration sur notre serveur apache:

cat<<'HERE' > /etc/httpd/conf.d/ldap_ca.conf
LDAPTrustedGlobalCert CA_BASE64 /etc/pki/tls/certs/ca-sme.pem
HERE

Maintenant, il ne reste plus qu'à activer l'authentification sur les pages que vous voulez, par exemple:

<Directory /var/www/callback/>
    AddHandler cgi-script .cgi .pl
    Options +ExecCGI
    SSLRequireSSL on
    order deny,allow
    deny from all
    allow from all

    AuthType basic
    AuthName "CallBack Access"
    AuthBasicProvider ldap
    AuthLDAPURL ldap://sme.domain.tld/ou=Users,dc=domain,dc=tld?uid TLS
    Require ldap-group cn=tech,ou=Groups,dc=domain,dc=tld
    AuthLDAPGroupAttribute memberUid
    AuthLDAPGroupAttributeIsDN off

</Directory>

Dans cet exemple, tous les membres du groupe tech seront authorisés à accéder à la ressource après s'être authentifié correctement. Pour plus d'information sur la configuration de mod_authnz_ldap: http://httpd.apache.org/docs/2.1/mod/mod_authnz_ldap.html et http://httpd.apache.org/docs/2.1/mod/mod_ldap.html

Si notre serveur apache ne se trouve pas sur le réseau local, il faut autoriser son IP publique à accéder à notre serveur LDAP:

db configuration setprop ldap access public AllowHosts 12.13.14.15
expand-template /etc/rc.d/init.d/masq
/etc/init.d/masq adjust
expand-template /etc/hosts.allow

Modification des ACL

Ça peut être utile de modifier les ACL LDAP de SME. Par exemple

mkdir -p /etc/e-smith/templates-custom/etc/openldap/slapd.conf
 
cat<<"EOF" > /etc/e-smith/templates-custom/etc/openldap/slapd.conf/95acls
 
access to attrs=userPassword
        by self         read
        by anonymous    peername.ip="127.0.0.1" auth
        by anonymous    ssf=128 auth
        by *            none
access to *
        by self         read
        by users   peername.ip=192.168.7.0%255.255.255.0     read
        by users ssf=128 read
        by *            peername.ip="127.0.0.1" read
        by *            none
 
EOF

Ces ACL permettent: