AD / LDAP connexion : freedom-networkuser-0.4.x pour Freedom < 3.0.7

AD / LDAP connexion : freedom-networkuser-0.4.x pour Freedom < 3.0.7

Introduction

Le module utilisateurs réseau permet à freedom d'utiliser un serveur LDAP déjà existant comme base d'authentification et comme référence pour les propriétés des utilisateurs (login, nom ,prénom, téléphone, mail ,…) et des groupes d'appartenances. Lorsque les utilisateurs et les groupes proviennent d'un serveur LDAP, on les nommera utilisateurs réseau et groupes réseau. Lors qu'ils sont déclarés localement, on les nommera utilisateurs locaux et groupes locaux.

À l'installation de freedom, 2 utilisateurs et 2 groupes locaux sont crées :

  • utilisateur admin (freedom master) et guest (anonymous)
  • groupes gadmin (groupe administration) et all (groupe défaut).

Ces utilisateurs et groupes ne doivent pas être supprimés. Ils servent de références lors de l'installation d'applications afin de définir les droits par défaut pour les utilisateurs et les administrateurs. L'utilisateur admin doit toujours être présent afin de débloquer des situations ou lorsque le serveur d'authentification distant est injoignable pour modifier par exemple des paramètres de connections.

Ce module est configuré pour être connecté à deux types de serveur LDAP : Active Directory et Posix. freedom utilise une table de translation entre les schémas LDAP et les attributs des utilisateurs et groupes réseaux. Pour Active Directory, freedom recherche les classes d'objets LDAP user et group. Pour Posix, freedom recherche les classes d'objets LDAP posixAccount et posixGroup.

Deux politiques sont possibles dans le cadre de ce modules:

  • Création à la volée : tout utilisateur référencé dans le LDAP peut se connecter à freedom
  • Création à la demande : l'administrateur doit créer l'utilisateur dans freedom (choix parmis ceux référencés dans le LDAP)

L'installation du module créé deux nouvelles familles de documents : Utilisateur réseaux et Groupe réseaux. Ces documents vont recevoir les informations du LDAP choisi. Les informations provenant du LDAP ne peuvent pas être modifiés par freedom. L'administrateur peut créer des utilisateurs réseaux. Cela consiste à rechercher un utilisateur dans le LDAP puis de le créer dans freedom.

La création donne le document suivant. Les groupes d'appartenance à l'utilisateur sont créés automatiquement lorsqu'un utilisateur est créé ou mis à jour.

Configuration freedom

Afin de créer les comptes au LDAP équivalent dans freedom, il est nécessaire de renseigner les paramètres suivants:

Ces paramètres doivent être les mêmes que ceux renseignés dans le fichier /etc/ldap.conf.

Nom Définition Type Défaut
NU_LDAP_HOST adresse du serveur LDAP G
NU_LDAP_BASE chemin racine G
NU_LDAP_BINDDN identifiant de l'utilisateur pouvant accéder au LDAP. Vide si le LDAP autorise un mode anonymous G
NU_LDAP_PASSWORD mot de passe du DN G
NU_LDAP_KIND type de LDAP : AD (active directory) ou POSIX (Posix) G

Pour récupérer les informations concernant l'AD utiliser la commande dos ldifde. Par exemple : ldifde -r ”(ObjectClass=User”) -s 127.0.0.1 -f utilisateurs.ldif dumpe les utilisateurs du AD local dans le fichier.

Configuration authentification

Pour utiliser `freedom-networkuser' comme fournisseur d'authentification à Freedom, il faut déclarer celui-ci dans la variable `$freedom_authprovider'.

Pour cela, il vous faut éditer le fichier `context/default/dbaccess.php' et ajouter `freedomNu' dans `$freedom_authprovider' :

$freedom_authprovider="freedom,freedomNu";

Paramètres authentification

Les paramètres du provider `freedomNu' sont :

`allowAutoFrreedomUserCreation' yes pour activer la création des utilisateurs « à la volé ». Par défaut : no.
`fix_euro' yes pour convertir le symbôle `' dans le jeu de caractère WINDOWS-1252 (A utiliser principalement pour l'authentification de type HTTP Basic avec des navigateurs sous environnement Microsoft Windows. Par défaut : no.
`convert_to_utf8' yes pour forcer la conversion du mot de passe du jeu de caractère WINDOWS-1252 vers le jeu de caractère UTF-8 (A utiliser principalement pour l'authentification de type HTTP Basic avec des navigateurs sous environnement Microsoft Windows. Par défaut : no.


$freedom_providers = array(
  [...]
  'freedomNu' => array(
                       'allowAutoFreedomUserCreation' => 'no',
                       'fix_euro' => 'no',
                       'convert_to_utf8' => 'no',
                       ),
  [...]
);

Exploitation

Importation d'un LDAP existant

La commande wsh nu_import_ldap permet d'importer l'intégralité des utilisateurs et groupes d'un serveur LDAP

# . /etc/freedom.conf
# wsh --api=nu_importldap

Search group S-01-5-32-544...Create Group Administrateurs
Search group S-01-5-32-545...Create Group Utilisateurs
Search group S-01-5-32-546...Create Group Invités
Search group S-01-5-32-550...Create Group Opérateurs d'impression
Search group S-01-5-32-551...Create Group Opérateurs de sauvegarde
Search group S-01-5-32-552...Create Group Duplicateurs

Alternative pour import Active Directory (freedom-nu >= 0.2.2)

Si vous rencontrez des problèmes de « limites » sur le nombre de groupes ou d'utilisateurs lors de l'import depuis Active Directory, vous pouvez essayer l'api nu_importldap_ad :

Lancer un test d'import avec l'option –dryrun=Y (l'import n'est pas effectué, mais la liste des opérations qui seraient effectués est affichée) :

# . /etc/freedom.conf
# wsh --api=nu_importldap_ad --dryrun=Y

Lancer l'import :

# . /etc/freedom.conf
# wsh --api=nu_importldap_ad

Raffraichissement par rapport à un LDAP déjà présent

Deux commandes wsh permettent une mise à jour générale. Cela consiste à actualiser les informations des utilisateurs réseaux déjà créés à partir des informations présentes dans le LDAP.

  • Pour les utilisateurs :
wsh --api=freedom_refresh --famid=LDAPUSER --method=refreshFromLDAP
  • Pour les groupes :
wsh --api=freedom_refresh --famid=LDAPGROUP --method=refreshFromLDAP

Exemple :

# . /etc/freedom.conf
# wsh --api=freedom_refresh --famid=LDAPGROUP --method=refreshFromLDAP

7 documents to refresh
using refreshFromLDAP method
7)propriétaires créateurs de la stratégie de groupe (use refreshFromLDAP)Doc171923
6)administrateurs du schéma (use refreshFromLDAP)Doc171923
5)Admins du domaine (use refreshFromLDAP)Doc171923
4)Administrateurs de l'entreprise (use refreshFromLDAP)Doc171923
3)Administrateurs (use refreshFromLDAP)Doc171923
2)Utilisa. du domaine (use refreshFromLDAP)Doc171923
1)Utilisateurs (use refreshFromLDAP)Doc171923

Mapping attribut LDAP et Freedom

Lors de la création d'un utilisateur réseau (ou du rafraîchissement de sa fiche), les attributs LDAP sont importés dans les attributs Freedom en suivant une table de correspondance qui est spécifiée dans le fichier `networkuser.ods', dans l'onglet LDAP.

On y définit des associations entre un attribut LDAP et son équivalent Freedom.

Par exemple, le numéro de téléphone (attribut Freedom US_PHONE) est pris à partir de l'attribut LDAP `telephoneNumber' pour les objets LDAP qui héritent du schéma `inetOrgPerson' :

LDAPMAP;LDAPUSER;telephoneNumber;US_PHONE;inetOrgPerson;1

Pour charger son propre « mapping », en complément de celui définit dans `networkuser.ods', on pourra créer un fichier CSV (ou ODS) et y définir ses règles de correspondance, et importer ce fichier comme on importe une définition de famille.

Pour modifier, ou supprimer une entrée, il faudra manipuler directemnt la table `docattrldap' en base de données (qui a la même structure que le fichier LDAPMAP décrit ci-dessus :

SELECT * FROM docattrldap;
UPDATE docattrldap SET ldap_attribute = 'someOtherPhoneNumber' WHERE freedom_attribute = 'US_PHONE';
etc.
modules/freedom-networkuser/freedom-networkuser.txt · Dernière modification: 23/06/2010 10:40 par jerome.auge