Interfaçage des services avec LDAP¶
Liste rapide des méthodes possibles pour interfacer des services avec LDAP. Certaines ne sont applicables que lorsque les services et le ldap tournent sur la même machine.- utilisation de sockets (ldapi://)
- connexion à localhost
- utiliser nss-ldap [et pam-ldap] pour que les comptes ldap soient connus en tant que comptes systèmes de la machine qui exécute les services. Cela permet d'intégrer des services qui n'implémentent pas le protocole LDAP.
- selon le type de réseau emprunté, connexion sans chiffrement sur le port tcp 389, ssl (ldaps://) sur le port tcp 686, ou StartTLS sur le port tcp 389. Si ssl ou tls, authentification forte par certificats côté serveur seulement, ou bien côté serveur et client.
Redmine¶
Pour pouvoir créer de nouveaux utilisateurs, Redmine a besoin de droits en écriture sur la branche ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR du LDAP.
On ajoute donc, sous ou=services, un nouvel utilisateur pour redmine. On modifie ensuite les ACL d'OpenLDAP pour accorder à cet utilisateur les droits nécessaires.
Utilisateur cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
LDIF
dn: cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top cn: redmine sn: redmine userPassword:: [SOMME SSHA]
Note: mdp stocké par JFM dans Revelation.
Modification des ACL dans les attributs de olcDatabase={1}hdb,cn=config
On ajoute un attribut olcAccess avec la valeur to dn.subtree="ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" by ssf=128 dn="cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read. (Signifie: le user cn=redmine peut lire le sous arbre de racine ou=users)
Pour permettre la réplication, il est nécessaire de donner également des droits en lecture à ldaprep1: by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read.
Par ailleurs les droits habituels s'appliquent. Aucun accès pour les utilisateurs et les connexions anonymes: by users none by * none.
LDIF des nouvelles ACL d'openldap
olcAccess: {0}to attrs=userPassword,shadowLastChange by ssf=128 self write b y anonymous auth by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurb anne,st=RHA,c=FR" read by users none by * none olcAccess: {1}to dn.subtree="ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" b y ssf=128 dn="cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" r ead by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c =FR" read by users none by * none olcAccess: {3}to dn.base="" by * read olcAccess: {4}to * by ssf=128 self write by ssf=128 dn="cn=ldaprep1,ou=servi ces,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read by users none by * none
Page d'administration de Redmine
http://www.illyse.org/admin / Authentification LDAP
Ajout d'un nouveau mode d'authentification.- Nom: LDAP
- Hôte: ldap.illyse.org
- Port: 636
- LDAPS: oui
- Compte: cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
- Mdp: mdp-de-cn=redmine
- Base DN: ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
- Création des utilisateurs à la volée: oui
- Identifiant: cn
- Prénom: givenName
- Nom: sn
- Email: mail
Redmine crée automatiquement en base les users trouvés sur le LDAP.
Bind 9 (DNS)¶
Voir bind-dlz pour l'installation et la configuration de bind9 avec backend ldap.
Pour lire les zones DNS, bind a besoin de droits en lecture sur la branche ou=dns,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR du LDAP.
On considère que bind dispose d'une réplique de l'annuaire, complète ou partielle, hébergée sur le même système.
=> on autorise les connexions anonymes depuis localhost à lire dans ou=dns
Modification des ACL dans les attributs de olcDatabase={1}hdb,cn=config
On ajoute un attribut olcAccess avec la valeur to dn.subtree="ou=dns,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" by peername.ip=127.0.0.1 read. (Signifie: toute connexion depuis 127.0.0.1 peut lire le sous arbre de racine ou=dns)
Pour permettre la réplication, il est nécessaire de donner également des droits en lecture à ldaprep1: by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read.
Par ailleurs les droits habituels s'appliquent. Aucun accès pour les utilisateurs et les connexions anonymes: by users none by * none.
LDIF des nouvelles ACL d'openldap
olcAccess: {0}to attrs=userPassword,shadowLastChange by ssf=128 self write b y anonymous auth by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurb anne,st=RHA,c=FR" read by users none by * none olcAccess: {1}to dn.subtree="ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" b y ssf=128 dn="cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" r ead by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c =FR" read by users none by * none olcAccess: {2}to dn.subtree="ou=dns,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" by peername.ip=127.0.0.1 read by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE, l=Villeurbanne,st=RHA,c=FR" read by users none by * none olcAccess: {3}to dn.base="" by * read olcAccess: {4}to * by ssf=128 self write by ssf=128 dn="cn=ldaprep1,ou=servi ces,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read by users none by * none
Updated by Pierre-Arnaud Poudret over 11 years ago · 1 revisions