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 :
admin (freedom master) et guest (anonymous)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:
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.
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 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";
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',
),
[...]
);
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
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
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.
wsh --api=freedom_refresh --famid=LDAPUSER --method=refreshFromLDAP
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
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.