Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes |
admin:services:ldap [2013/12/13 14:59] – admin:ldap renamed to admin:services:ldap (Réorganisation) zertrin | admin:services:ldap [2015/03/11 03:36] – comment ajouter un utilisateur SSH vincent.le-gallic |
---|
==== Provider (master) ==== | ==== Provider (master) ==== |
| |
[[https://github.com/FedeRez/webldap-deploy/blob/master/migrations/syncrepl/provider.ldif|provider.ldif]] | [[https://github.com/FedeRez/webldap-deploy/blob/master/conf/sync/provider.ldif|provider.ldif]] |
| |
=== Compte syncrepl === | Les consumers se connectent au provider avec un compte qui à l'accès complet à l'arbre en lecture seule ([[https://github.com/FedeRez/webldap-deploy/blob/master/conf/sync/syncuser.ldif|syncuser.ldif]]) |
| |
Les consumers se connectent au provider avec un compte qui à l'accès complet à l'arbre en lecture seule ([[https://github.com/FedeRez/webldap-deploy/blob/master/migrations/syncrepl/syncuser.ldif|syncuser.ldif]]) | |
| |
==== Consumer (slave) ==== | ==== Consumer (slave) ==== |
| |
[[https://github.com/FedeRez/webldap-deploy/blob/master/migrations/syncrepl/consumer.ldif|consumer.ldif]] | [[https://github.com/FedeRez/webldap-deploy/blob/master/conf/sync/consumer.ldif|consumer.ldif]] |
| |
Avec le paramètre ''type=refreshAndPersist'', les entrées sont récupérées du provider en temps réel. Cela est fait en TLS pour rendre le transfert confidentiel, d'où l'utilisation des noms de domaine dans la configuration. | Avec le paramètre ''type=refreshAndPersist'', les entrées sont récupérées du provider en temps réel. Cela est fait en TLS pour rendre le transfert confidentiel, d'où l'utilisation des noms de domaine dans la configuration. |
| |
===== ACL ===== | ===== ACL ===== |
| |
==== Provider (master) ==== | |
| |
Le ''break'' de la première ACL permet de passer aux suivantes pour les utilisateurs non concernés. | Le ''break'' de la première ACL permet de passer aux suivantes pour les utilisateurs non concernés. |
by group="cn=usermgmt,ou=services,ou=groups,dc=federez,dc=net" write | by group="cn=usermgmt,ou=services,ou=groups,dc=federez,dc=net" write |
by group/organizationalRole/roleOccupant="cn=member,ou=roles,dc=federez,dc=net" read | by group/organizationalRole/roleOccupant="cn=member,ou=roles,dc=federez,dc=net" read |
| by group="cn=readonly,ou=services,ou=groups,dc=federez,dc=net" read |
olcAccess: to dn.sub="ou=service-users,dc=federez,dc=net" | olcAccess: to dn.sub="ou=service-users,dc=federez,dc=net" |
by self write | by self write |
| |
slapd[14401]: slapd: line 0: rootdn is always granted unlimited privileges. | slapd[14401]: slapd: line 0: rootdn is always granted unlimited privileges. |
| |
==== Consumer (slave) ==== | |
| |
Les ACLs pour les consumers sont les mêmes que pour le provider à l'exception du remplacement de tous les droits ''write'' par ''read''. | |
| |
===== TLS ===== | ===== TLS ===== |
| |
Ajouter ''openssl'' au groupe ''ssl-cert''. | Ajouter ''openldap'' au groupe ''ssl-cert''. |
| |
Pour créer la chaîne : | Pour créer la chaîne : |
olcTLSCertificateKeyFile: /etc/ssl/private/federez.key | olcTLSCertificateKeyFile: /etc/ssl/private/federez.key |
| |
| ===== SSH ===== |
| |
| Pour permettre à un utilisateur d'accéder aux serveurs en SSH, une fois son compte créé avec le [[admin:services:webldap|webldap]] : |
| |
| Dans le LDAP (on pourra utiliser ''shelldap'' sur [[admin:serveurs:hexagon|hexagon]], en notant que ''root'' a un ''.shelldap.rc'' qui contient déjà tout ce qu'il faut), il faut ajouter des choses. |
| |
| Dans ''uid=prenom.nom,ou=users,dc=federez,dc=net'', ajouter les champs : |
| |
| objectClass: inetOrgPerson |
| objectClass: netFederezUser |
| objectClass: posixAccount |
| objectClass: shadowAccount |
| displayName: Prenom Nom |
| gidNumber: 10001 |
| givenName: Prenom |
| homeDirectory: /home/username |
| loginShell: /bin/bash |
| netFederezUID: username |
| shadowMax: 99999 |
| shadowMin: 0 |
| shadowWarning: 7 |
| uidNumber: 10001 |
| |
| * ''gidNumber'' et ''uidNumber'' doivent être supérieurs à 10000 et non encore utilisés (utilisez ''getent passwd'' et ''getent group'' pour visualiser les existants). |
| * Il a normalement déjà les champs ''mail'', ''cn'', ''sn'', ''uid'', ''userPassword'' |
| * ''displayName'' est déjà rempli ?? |
| * ''givenName'' est indispensable ?? |
| |
| Créer ''cn=username,ou=posix,ou=groups,dc=federez,dc=net'' : |
| |
| dn: cn=username,ou=posix,ou=groups,dc=federez,dc=net |
| objectClass: posixGroup |
| cn: username |
| gidNumber: 10001 |
| memberUid: username |
| |
| * Soyez cohérents sur les champs ''cn'' et ''gidNumber'' avec les valeurs de ''uid=prenom.nom,ou=users,dc=federez,dc=net'' |
| |
| Enfin, dans ''cn=ssh,ou=accesses,ou=groups,dc=federez,dc=net'', ajouter le membre : |
| |
| uniqueMember: uid=prenom.nom,ou=users,dc=federez,dc=net |