Projet

Général

Profil

Ldap-services » Historique » Version 1

Pierre-Arnaud Poudret, 05/06/2013 15:48

1 1 Pierre-Arnaud Poudret
h1. Interfaçage des services avec LDAP
2
3
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.
4
* utilisation de sockets (ldapi://)
5
* connexion à localhost
6
* 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.
7
* 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.
8
9
h1. Redmine
10
11
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.
12
13
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.
14
15
*Utilisateur cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR*
16
17
LDIF
18
<pre>
19
dn: cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
20
objectClass: inetOrgPerson
21
objectClass: organizationalPerson
22
objectClass: person
23
objectClass: top
24
cn: redmine
25
sn: redmine
26
userPassword:: [SOMME SSHA]
27
</pre>
28
29
Note: mdp stocké par JFM dans Revelation.
30
31
*Modification des ACL dans les attributs de olcDatabase={1}hdb,cn=config*
32
33
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)
34
35
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_.
36
37
Par ailleurs les droits habituels s'appliquent. Aucun accès pour les utilisateurs et les connexions anonymes: _by users none by * none_.
38
39
LDIF des nouvelles ACL d'openldap
40
<pre>
41
olcAccess: {0}to attrs=userPassword,shadowLastChange by ssf=128 self write b
42
 y anonymous auth by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurb
43
 anne,st=RHA,c=FR" read by users none by * none
44
olcAccess: {1}to dn.subtree="ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" b
45
 y ssf=128 dn="cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" r
46
 ead by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c
47
 =FR" read by users none by * none
48
olcAccess: {3}to dn.base="" by * read
49
olcAccess: {4}to * by ssf=128 self write by ssf=128 dn="cn=ldaprep1,ou=servi
50
 ces,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read by users none by * none
51
</pre>
52
53
*Page d'administration de Redmine*
54
55
http://www.illyse.org/admin / Authentification LDAP
56
57
Ajout d'un nouveau mode d'authentification.
58
* Nom: LDAP
59
* Hôte: ldap.illyse.org
60
* Port: 636
61
* LDAPS: oui
62
* Compte: cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
63
* Mdp: mdp-de-cn=redmine
64
* Base DN: ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR
65
* Création des utilisateurs à la volée: oui
66
* Identifiant: cn
67
* Prénom: givenName
68
* Nom: sn
69
* Email: mail
70
71
Redmine crée automatiquement en base les users trouvés sur le LDAP.
72
73
74
h1. Bind 9 (DNS)
75
76
Voir [[bind-dlz]] pour l'installation et la configuration de bind9 avec backend ldap.
77
78
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.
79
80
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.
81
=> on autorise les connexions anonymes depuis localhost à lire dans ou=dns
82
83
*Modification des ACL dans les attributs de olcDatabase={1}hdb,cn=config*
84
85
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)
86
87
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_.
88
89
Par ailleurs les droits habituels s'appliquent. Aucun accès pour les utilisateurs et les connexions anonymes: _by users none by * none_.
90
91
92
LDIF des nouvelles ACL d'openldap
93
<pre>
94
olcAccess: {0}to attrs=userPassword,shadowLastChange by ssf=128 self write b
95
 y anonymous auth by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurb
96
 anne,st=RHA,c=FR" read by users none by * none
97
olcAccess: {1}to dn.subtree="ou=users,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" b
98
 y ssf=128 dn="cn=redmine,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" r
99
 ead by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,l=Villeurbanne,st=RHA,c
100
 =FR" read by users none by * none
101
olcAccess: {2}to dn.subtree="ou=dns,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" by 
102
 peername.ip=127.0.0.1 read by ssf=128 dn="cn=ldaprep1,ou=services,o=ILLYSE,
103
 l=Villeurbanne,st=RHA,c=FR" read by users none by * none
104
olcAccess: {3}to dn.base="" by * read
105
olcAccess: {4}to * by ssf=128 self write by ssf=128 dn="cn=ldaprep1,ou=servi
106
 ces,o=ILLYSE,l=Villeurbanne,st=RHA,c=FR" read by users none by * none
107
</pre>