Project

General

Profile

Actions

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 7 years ago · 1 revisions