Protection du manager

Lorsqu'on installe LL::NG, le manager n'est accessible que via le compte de démonstration dwho. Ce document explique comment changer ce comportement par défaut pour protéger le manager avec d'autres règles.

Protection basée sur Apache

Apache based protection allow one to be independent from WebSSO, so Manager will always be reachable even if WebSSO configuration is corrupted.

Cette configuration peut être changée dans etc/manager-apache2.conf, par exemple pour restreindre les adresses IP autorisées à accéder au manager :

    <Directory /usr/local/lemonldap-ng/htdocs/manager/>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/8 192.168.100.0/32
        Options +ExecCGI
    </Directory>

Il est souvent souhaitable d'utiliser un module d'authentification Apache, tel par exemple le module d'authentification LDAP :

    <Directory /usr/local/lemonldap-ng/htdocs/manager/>
        AuthzLDAPAuthoritative On
        AuthName "LL::NG Manager"
        AuthType Basic
        AuthBasicProvider ldap
        AuthLDAPBindDN "ou=websso,ou=applications,dc=example,dc=com"
        AuthLDAPBindPassword "secret"
        AuthLDAPURL ldap://localhost:389/ou=users,dc=example,dc=com???(objectClass=inetOrgPerson) TLS
        Require ldap-user coudot xguimard tchemineau
        Options +ExecCGI
    </Directory>
Il faut alors désactiver la protection du manager dans lemonldap-ng.ini pour la confier à Apache :
[manager]
;protection = manager

Protection basée sur LL::NG

Avant d'activer la protection du manager par LL::NG, il faut avoir configuré la méthode d'authentification sur le portail et véifier qu'on peut s'y connecter sans difficultés. Sinon, on risque de verrouiller l'accès au manager et ne plus pouvoir y accéder.

Par défaut, il existe un hôte virtuel défini dans la configuration. Si non, aller dans le manager et déclarer le manager comme un nouvel hôte virtuel, par exemple manager.example.com. Définir ensuite les règles d'accès. Aucun en-tête n'est nécessaire.

La règle par défaut est :

$uid eq "dwho"

Il faut la changer pour correspondre au nouvel administrateur (ou utiliser une autre conditions telle l'appartenance aux groupes ou tout autre règle basée sur des variables de session).

Sauver la configuration et quitter le manager.

En retournant vers le manager, ce sera via LL::NG.

Activer la protection du manager, en éditant lemonldap-ng.ini:

[manager]
protection = manager

On peut également adapter le contrôle d'accès d'Apache :

    <Directory /usr/local/lemonldap-ng/htdocs/manager/>
        Order deny,allow
        Allow from all
        Options +ExecCGI
    </Directory>

Redémarrer Apache et tenter de se connecter au manager. On doit être redirigé vers le portail LL::NG.

On peut aussi ajouter le manager dans les applications du menu.

Si pour une quelconque raison le WebSSO ne fonctionne pas, pour accéder au manager, supprimer la protection dans lemonldap-ng.ini. Ajouter un contrôle d'accès Apache pour éviter les autres accès.