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> |