Difference between revisions of "Module LDAP"
(→Usage) |
Tag: 2017 source edit |
||
(20 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | <!-- BEGIN interlang links --> | ||
+ | <!-- Do NOT edit this section | ||
+ | Links below are automatically managed by PolyglotBot | ||
+ | You can edit links on the English source page : Module_LDAP_En --> | ||
+ | [[en:Module_LDAP_En]] | ||
+ | [[es:Módulo_LDAP]] | ||
+ | <!-- END interlang links --> | ||
+ | |||
[[Category:LDAP]] | [[Category:LDAP]] | ||
{{TemplateDocUtil}} | {{TemplateDocUtil}} | ||
Line 8: | Line 16: | ||
userdoc=Cette page|}} | userdoc=Cette page|}} | ||
− | = Introduction = | + | =Introduction= |
Le module LDAP permet de synchroniser des entités Dolibarr avec une base LDAP. | Le module LDAP permet de synchroniser des entités Dolibarr avec une base LDAP. | ||
Les entités qui peuvent être synchronisées et le sens sont les suivants: | Les entités qui peuvent être synchronisées et le sens sont les suivants: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | On suppose donc que vous | + | *Utilisateurs ([[Module Utilisateurs]]) -> LDAP |
+ | *Groupes utilisateurs ([[Module Utilisateurs]]) -> LDAP | ||
+ | *LDAP -> Utilisateurs ([[Module Utilisateurs]]) | ||
+ | *Contacts ([[Module Tiers]]) -> LDAP | ||
+ | *Adhérents ([[Module Adhérents]]) -> LDAP | ||
+ | |||
+ | Le module permet aussi l'authentification des utilisateurs via la base de mot de passe du serveur LDAP. | ||
+ | |||
+ | On suppose donc que vous possédez déjà un serveur LDAP. Si tel n'est pas le cas, vous pouvez [[Installer et configurer OpenLDAP]]. | ||
− | = Installation = | + | =Installation= |
{{NoInstallModuleFr}} | {{NoInstallModuleFr}} | ||
− | = Configuration = | + | =Configuration= |
{{ActivationModuleFr}} | {{ActivationModuleFr}} | ||
+ | == Configurer le lien LDAP-Dolibarr pour la synchronisation manuelle == | ||
+ | '''Les informations à fournir dans la configuration du module LDAP sont les suivantes:''' | ||
+ | |||
+ | *Rendez-vous dans l'onglet '''"Paramètres généraux"''', | ||
+ | *Entrez les informations du serveur LDAP : | ||
+ | **Choisissez '''ce que vous souhaitez synchroniser''' (utilisateurs, groupes, adhérents) et dans quel sens, | ||
+ | **'''Type''' : openLDAP, Active Directory, eGroupWare, | ||
+ | **'''Version''' : version du protocole LDAP (en général : 3 ), | ||
+ | **'''Serveur primaire''' : ldap://<hostname_ou_ip> , en mode sécurisé ldaps://<hostname_ou_ip> | ||
+ | **'''Serveur secondaire''' : idem primaire mais pour redondance en cas de panne du premier serveur LDAP, | ||
+ | **'''Port ''' : 389 (ldap://) ou 636 (ldaps://), | ||
+ | **'''DN ''': niveau à partir duquel le module LDAP va commencer à chercher (en général DC=company,DC=com), | ||
+ | **'''Utilisation de TLS''' : oui ou non (en général : non), | ||
+ | **'''DN de l'administrateur''' (bind LDAP) : Utilisateur avec lequel vous allez demander à Dolibarr de faire les recherches (il faut un compte sans droit particulier), | ||
+ | **'''Mot de passe de l'administrateur''' : mot de passe de l'utilisateur précédent (le même que dans votre fichiers '''''./dolibarr-x.y.z/htdocs/conf/conf.php)'''''. | ||
+ | |||
+ | <br />[[File:Capture d’écran du 2020-04-30 17-34-49.png|thumb|alt=|center]] | ||
+ | |||
+ | *Une fois ces informations renseignés, cliquer sur le bouton '''"Modifier"''' et utilisez le bouton '''"Test LDAP connection"''' pour vous assurer qu'elles sont bonnes. | ||
+ | |||
+ | Ce qui doit vous donner ceci : | ||
+ | |||
+ | ''@ Connexion TCP au serveur LDAP réussie (Serveur=ldap(s)://<hostname_ou_ip>, Port=389 (ou 636) )'' | ||
+ | |||
+ | ''@ Connection/Authentification au serveur LDAP réussie (Serveur=ldap(s)://<hostname_ou_ip>, Port=389 (ou 636), Admin= uid=admin,DC=company,DC=com, Password=****************)'' | ||
+ | |||
+ | ''@ Serveur LDAP configuré en version 3'' | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | *Ensuite, saisissez la '''manière de récupérer les utilisateurs dans votre annuaire LDAP, un filtre LDAP est recommandé''' (ici filtrage sur un groupe dans lequel vous mettez les utilisateurs autorisé à utiliser Dolibarr) | ||
+ | *Et faites l''''association entre les champs Dolibarr et les champs LDAP''', | ||
+ | *N'oubliez pas de sélectionner, un c'''hamp unique qui va servir de clef d’identification unique pour vos utilisateurs''' (en général : uid ou sAMAccountName) | ||
+ | |||
+ | <br />[[File:Capture d’écran du 2020-04-30 17-38-17.png|thumb|alt=|center]] | ||
+ | <br /> | ||
+ | |||
+ | *Une fois ces informations renseignés, cliquer sur le bouton '''"Modifier"''' et utilisez le bouton '''"Tester un recherche LDAP"''' pour vous assurer qu'elles sont bonnes. | ||
+ | |||
+ | [[File:Capture d’écran du 2020-04-30 17-38-57.png|center|thumb]] | ||
− | |||
− | |||
− | |||
− | |||
− | + | Ce qui doit vous donner ceci : | |
+ | |||
+ | <br /><syntaxhighlight lang="php"> | ||
+ | LDAP search for user: | ||
+ | search: * | ||
+ | userDN: DC=company,DC=com | ||
+ | useridentifier: uid | ||
+ | required_fields: uid,cn,sn,givenname,userPassword,telephonenumber,mail | ||
+ | |||
+ | => 4 records (dépends du nombre d'utilisateur restreint, ou pas, par votre filtre LDAP. Filtre que je vous conseille de mettre en oeuvre) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | *Enfin, saisissez la '''manière de récupérer les groupes dans votre annuaire LDAP, un filtre LDAP est recommandé''' (ici filtrage sur un groupe dans lequel vous mettez les utilisateurs autorisé à utiliser Dolibarr) | ||
+ | |||
+ | *Et faites l''''association entre les champs Dolibarr et les champs LDAP''', | ||
+ | |||
+ | <br /> | ||
+ | [[File:Capture d’écran du 2020-04-30 17-39-38.png|center|thumb]] | ||
+ | |||
+ | == Configurer pour utiliser le mot de passe LDAP pour se loguer == | ||
− | + | Modifier votre fichier de configuration de l'application '''htdocs/conf/conf.php''' pour demander à Dolibarr de tester la validité du mot de passe au serveur LDAP, voici un exemple qui fonctionne avec openLDAP : | |
− | |||
− | |||
− | + | <syntaxhighlight lang="php"> | |
+ | [...] | ||
+ | // Authentication settings | ||
+ | //$dolibarr_main_authentication='dolibarr'; | ||
+ | $dolibarr_main_authentication='ldap,dolibarr'; // To be able to login with both the LDAP or the Dolibarr password (if there is problem with the LDAP server, keep a non LDAP password for one admin user !) | ||
+ | $dolibarr_main_auth_ldap_host='<ldap>ou<ldaps>: //<hostname>'; // Plusieurs serveurs peuvent être ajouter en séparant par une virgule. | ||
+ | $dolibarr_main_auth_ldap_port='<389>ou<636>'; // Port | ||
+ | $dolibarr_main_auth_ldap_version='3'; | ||
+ | $dolibarr_main_auth_ldap_servertype='openldap'; // openldap, activedirectory or egroupware | ||
+ | $dolibarr_main_auth_ldap_login_attribute='uid'; // Ex: uid or samaccountname for active directory | ||
+ | $dolibarr_main_auth_ldap_dn='dc=company,dc=com'; // Ex: ou=users,dc=my-domain,dc=com | ||
+ | $dolibarr_main_auth_ldap_filter = ''; // If defined, two previous parameters are not used to find a user into LDAP. Ex: (uid=%1%) or &(uid=%1%)(isMemberOf=$ | ||
+ | $dolibarr_main_auth_ldap_admin_login='uid=admin,dc=company,dc=com'; // Required only if anonymous bind disabled. Ex: cn=admin,dc=example,dc=com | ||
+ | $dolibarr_main_auth_ldap_admin_pass='secret'; // Required only if anonymous bind disabled. Ex: secret | ||
+ | $dolibarr_main_auth_ldap_debug='false'; | ||
+ | [...] | ||
+ | </syntaxhighlight> | ||
− | = Usage = | + | =Usage= |
Pour les synchronisations de Dolibarr vers le LDAP, une fois que votre configuration est réalisée, il n'y a rien à faire. A chaque fois que vous faites une modification dans Dolibarr, le changement est repercuté dans le LDAP. | Pour les synchronisations de Dolibarr vers le LDAP, une fois que votre configuration est réalisée, il n'y a rien à faire. A chaque fois que vous faites une modification dans Dolibarr, le changement est repercuté dans le LDAP. | ||
Line 47: | Line 129: | ||
Vous pouvez toutefois réaliser des synchronisations initiales ou de masse grace aux scripts (voir chapitre Scripts). | Vous pouvez toutefois réaliser des synchronisations initiales ou de masse grace aux scripts (voir chapitre Scripts). | ||
− | = Erreurs = | + | =Erreurs= |
Parce que le message d'erreur retourné par les fonctions PHP LDAP ne sont pas précises, vous pouvez avoir des difficultés pour analyser un message d'erreur LDAP. Voici quoi faire dans ce cas: | Parce que le message d'erreur retourné par les fonctions PHP LDAP ne sont pas précises, vous pouvez avoir des difficultés pour analyser un message d'erreur LDAP. Voici quoi faire dans ce cas: | ||
− | |||
− | |||
− | |||
− | |||
− | = Scripts = | + | *Juste après que l'erreur ait eu lieu, un fichier '''ldap/temp/ldapinput.in''' est créé dans votre répertoire documents. Aller dans le répertoire '''ldap/temp/'''. |
− | * [[Script sync contacts dolibarr2ldap]] | + | *Ouvre le fichier '''ldapinput.in''', vous y verrez sur les premières lignes (en commentaire), la commande ldap complète que vous pouvez utiliser pour émuler la même action que celle envoyé par le PHP au serveur LDAP. |
− | * [[Script sync groups dolibarr2ldap]] | + | *Exécuter la commande. Vous devez avoir les utiltaires ldap (ldapadd, ldapmodify et ldapdelete) installés sur votre ordinateur. |
− | * [[Script sync members dolibarr2ldap]] | + | *Analyser le résultat. Vous devriez avoir plus d'information sur la cause de l'erreur. |
− | * [[Script sync members ldap2dolibarr]] | + | |
− | * [[Script sync users dolibarr2ldap]] | + | =Scripts= |
+ | |||
+ | *[[Script sync contacts dolibarr2ldap]] | ||
+ | *[[Script sync groups dolibarr2ldap]] | ||
+ | *[[Script sync members dolibarr2ldap]] | ||
+ | *[[Script sync members ldap2dolibarr]] | ||
+ | *[[Script sync users dolibarr2ldap]] |
Latest revision as of 12:09, 10 August 2022
LDAP | |
---|---|
Numéro/ID du module | 200 |
Doc utilisateur du module | Cette page |
Doc développeur du module | Module LDAP (développeur) |
Introduction
Le module LDAP permet de synchroniser des entités Dolibarr avec une base LDAP. Les entités qui peuvent être synchronisées et le sens sont les suivants:
- Utilisateurs (Module Utilisateurs) -> LDAP
- Groupes utilisateurs (Module Utilisateurs) -> LDAP
- LDAP -> Utilisateurs (Module Utilisateurs)
- Contacts (Module Tiers) -> LDAP
- Adhérents (Module Adhérents) -> LDAP
Le module permet aussi l'authentification des utilisateurs via la base de mot de passe du serveur LDAP.
On suppose donc que vous possédez déjà un serveur LDAP. Si tel n'est pas le cas, vous pouvez Installer et configurer OpenLDAP.
Installation
Ce module est livré en standard avec la distribution de Dolibarr, aussi il est déjà installé.
Configuration
Pour utiliser ce module, il vous faut d'abord l'activer. Pour cela, après s'être connecté avec un compte administrateur, aller sur la page "Accueil - Configuration - Modules".
Choisissez l'onglet dans lequel apparaît le module puis cliquez sur "Activer".
Le module est alors activé.
Si un pictogramme apparaît sur la vignette ou à la fin de la ligne du module, cliquez dessus pour accéder à la page de paramétrage spécifique à ce module.
Configurer le lien LDAP-Dolibarr pour la synchronisation manuelle
Les informations à fournir dans la configuration du module LDAP sont les suivantes:
- Rendez-vous dans l'onglet "Paramètres généraux",
- Entrez les informations du serveur LDAP :
- Choisissez ce que vous souhaitez synchroniser (utilisateurs, groupes, adhérents) et dans quel sens,
- Type : openLDAP, Active Directory, eGroupWare,
- Version : version du protocole LDAP (en général : 3 ),
- Serveur primaire : ldap://<hostname_ou_ip> , en mode sécurisé ldaps://<hostname_ou_ip>
- Serveur secondaire : idem primaire mais pour redondance en cas de panne du premier serveur LDAP,
- Port : 389 (ldap://) ou 636 (ldaps://),
- DN : niveau à partir duquel le module LDAP va commencer à chercher (en général DC=company,DC=com),
- Utilisation de TLS : oui ou non (en général : non),
- DN de l'administrateur (bind LDAP) : Utilisateur avec lequel vous allez demander à Dolibarr de faire les recherches (il faut un compte sans droit particulier),
- Mot de passe de l'administrateur : mot de passe de l'utilisateur précédent (le même que dans votre fichiers ./dolibarr-x.y.z/htdocs/conf/conf.php).
- Une fois ces informations renseignés, cliquer sur le bouton "Modifier" et utilisez le bouton "Test LDAP connection" pour vous assurer qu'elles sont bonnes.
Ce qui doit vous donner ceci :
@ Connexion TCP au serveur LDAP réussie (Serveur=ldap(s)://<hostname_ou_ip>, Port=389 (ou 636) )
@ Connection/Authentification au serveur LDAP réussie (Serveur=ldap(s)://<hostname_ou_ip>, Port=389 (ou 636), Admin= uid=admin,DC=company,DC=com, Password=****************)
@ Serveur LDAP configuré en version 3
- Ensuite, saisissez la manière de récupérer les utilisateurs dans votre annuaire LDAP, un filtre LDAP est recommandé (ici filtrage sur un groupe dans lequel vous mettez les utilisateurs autorisé à utiliser Dolibarr)
- Et faites l'association entre les champs Dolibarr et les champs LDAP,
- N'oubliez pas de sélectionner, un champ unique qui va servir de clef d’identification unique pour vos utilisateurs (en général : uid ou sAMAccountName)
- Une fois ces informations renseignés, cliquer sur le bouton "Modifier" et utilisez le bouton "Tester un recherche LDAP" pour vous assurer qu'elles sont bonnes.
Ce qui doit vous donner ceci :
LDAP search for user:
search: *
userDN: DC=company,DC=com
useridentifier: uid
required_fields: uid,cn,sn,givenname,userPassword,telephonenumber,mail
=> 4 records (dépends du nombre d'utilisateur restreint, ou pas, par votre filtre LDAP. Filtre que je vous conseille de mettre en oeuvre)
- Enfin, saisissez la manière de récupérer les groupes dans votre annuaire LDAP, un filtre LDAP est recommandé (ici filtrage sur un groupe dans lequel vous mettez les utilisateurs autorisé à utiliser Dolibarr)
- Et faites l'association entre les champs Dolibarr et les champs LDAP,
Configurer pour utiliser le mot de passe LDAP pour se loguer
Modifier votre fichier de configuration de l'application htdocs/conf/conf.php pour demander à Dolibarr de tester la validité du mot de passe au serveur LDAP, voici un exemple qui fonctionne avec openLDAP :
[...]
// Authentication settings
//$dolibarr_main_authentication='dolibarr';
$dolibarr_main_authentication='ldap,dolibarr'; // To be able to login with both the LDAP or the Dolibarr password (if there is problem with the LDAP server, keep a non LDAP password for one admin user !)
$dolibarr_main_auth_ldap_host='<ldap>ou<ldaps>: //<hostname>'; // Plusieurs serveurs peuvent être ajouter en séparant par une virgule.
$dolibarr_main_auth_ldap_port='<389>ou<636>'; // Port
$dolibarr_main_auth_ldap_version='3';
$dolibarr_main_auth_ldap_servertype='openldap'; // openldap, activedirectory or egroupware
$dolibarr_main_auth_ldap_login_attribute='uid'; // Ex: uid or samaccountname for active directory
$dolibarr_main_auth_ldap_dn='dc=company,dc=com'; // Ex: ou=users,dc=my-domain,dc=com
$dolibarr_main_auth_ldap_filter = ''; // If defined, two previous parameters are not used to find a user into LDAP. Ex: (uid=%1%) or &(uid=%1%)(isMemberOf=$
$dolibarr_main_auth_ldap_admin_login='uid=admin,dc=company,dc=com'; // Required only if anonymous bind disabled. Ex: cn=admin,dc=example,dc=com
$dolibarr_main_auth_ldap_admin_pass='secret'; // Required only if anonymous bind disabled. Ex: secret
$dolibarr_main_auth_ldap_debug='false';
[...]
Usage
Pour les synchronisations de Dolibarr vers le LDAP, une fois que votre configuration est réalisée, il n'y a rien à faire. A chaque fois que vous faites une modification dans Dolibarr, le changement est repercuté dans le LDAP.
Si vous rencontrez une erreur durant la synchronisation LDAP, toute la transaction Dolibarr sera annulée et un message d'erreur sera affiché. Notez que les messages d'erreurs retournées par le serveur LDAP en PHP sont peu précises. Aussi si un message d'erreur n'est pas assez clair pour vous permettre de deviner ce qui ne fonctionne pas, jetez un oeil au chapitre "Erreurs".
Vous pouvez toutefois réaliser des synchronisations initiales ou de masse grace aux scripts (voir chapitre Scripts).
Erreurs
Parce que le message d'erreur retourné par les fonctions PHP LDAP ne sont pas précises, vous pouvez avoir des difficultés pour analyser un message d'erreur LDAP. Voici quoi faire dans ce cas:
- Juste après que l'erreur ait eu lieu, un fichier ldap/temp/ldapinput.in est créé dans votre répertoire documents. Aller dans le répertoire ldap/temp/.
- Ouvre le fichier ldapinput.in, vous y verrez sur les premières lignes (en commentaire), la commande ldap complète que vous pouvez utiliser pour émuler la même action que celle envoyé par le PHP au serveur LDAP.
- Exécuter la commande. Vous devez avoir les utiltaires ldap (ldapadd, ldapmodify et ldapdelete) installés sur votre ordinateur.
- Analyser le résultat. Vous devriez avoir plus d'information sur la cause de l'erreur.