Je travaille actuellement sur l'intégration de l'authentification LDAP dans un système et je voudrais restreindre l'accès en fonction du groupe LDAP. La seule façon de le faire est via un filtre de recherche et donc je crois que ma seule option est l'utilisation de l'attribut "memberOf" dans mon filtre de recherche. Je crois comprendre que l'attribut "memberOf" est un attribut opérationnel qui peut être créé par le serveur pour moi chaque fois qu'un nouvel attribut "member" est créé pour toute entrée "groupOfNames" sur le serveur. Mon objectif principal est de pouvoir ajouter un attribut "membre" à une entrée "groupOfNames" existante et d'ajouter un attribut "memberOf" correspondant au nom distinctif que je fournis.
Ce que j'ai réussi à réaliser jusqu'à présent:
Je suis encore assez nouveau dans l'administration LDAP, mais d'après ce que j'ai trouvé dans le guide de l'administrateur openldap, il semble que le maintien de l'appartenance à un groupe inversé aka "memberof overlay" atteindrait exactement l'effet que je recherche.
Mon serveur exécute actuellement une installation de package (slapd sur ubuntu) d'Openldap 2.4.15 qui utilise une configuration d'exécution de style "cn = config". La plupart des exemples que j'ai trouvés font référence à l'ancienne méthode de configuration statique "slapd.conf" et j'ai fait de mon mieux pour adapter les configurations au nouveau modèle basé sur les répertoires.
J'ai ajouté les entrées suivantes pour activer le module de superposition memberof:
Activer le module avec olcModuleLoad
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
Activé la superposition de la base de données et lui a permis d'utiliser ses paramètres par défaut (groupOfNames, membre, memberOf, etc.)
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z
Mon résultat actuel:
En utilisant la configuration ci-dessus, je peux ajouter un NOUVEAU "groupOfNames" avec n'importe quel nombre d'entrées "member" et avoir tous les DN impliqués mis à jour avec un attribut "memberOf". Cela fait partie du comportement auquel je m'attendrais. Bien que je pense que ce qui suit aurait dû être accompli avec le membre de la superposition, je ne sais toujours pas comment faire ce qui suit et je serais heureux de recevoir tout conseil:
- Ajoutez un attribut "membre" à un "groupOfNames" EXISTANT et créez automatiquement un attribut "memberOf" correspondant.
- Supprimez un attribut "member" et supprimez automatiquement l'attribut "memberOf" correspondant.
slapadd
(sur la base de données arrêtée) la bonne façon de le faire?