2017-01-18 4 views
0

J'ai configuré un serveur LDAP sur une instance Linux à l'aide d'AWS EC2. Jusqu'à présent, j'ai réussi à configurer LDAP et phpLDAPadmin pour travailler ensemble.Problème de configuration avec OpenLDAP (sur AWS EC2)

J'ai créé Utilisateurs et groupes "Unités d'organisation". J'ai ajouté des utilisateurs et des groupes à ces "OU". Maintenant, je veux accéder à des parties spécifiques de mon arborescence LDAP aux membres "Utilisateurs" d'un "Groupe". C'est ce que je ne suis pas en mesure de configurer jusqu'à maintenant ...

Mon arbre LDAP ressemble à ceci:

+--> dc=www,dc=website,dc=com (3) 
    ---> cn=admin 
    +--> ou=groups (4) 
    | ---> cn=admin_users 
    | ---> cn=app1_users 
    | ---> cn=app2_users 
    | ---> cn=basic_users 
    +--> ou=users (3) 
    | ---> cn=user1 
    | ---> cn=user2 
    | ---> cn=user3 

Disons que j'ai ajouté user1 + utilisateur2 à la liste « memberUid » de « app1_users "et user2 + user3 à la liste" memberUid "de" app2_users ".

Je veux:

  • cn = admin ont les pleins droits/accès à l'arbre
  • app1_users peuvent se connecter (à phpLDAPadmin) et ajouter de nouveaux membres au groupe lui-même
  • la même chose pour app2_users 'utilisateurs

Un utilisateur connecté (sur phpLDAPadmin) ne devrait voir que l'arbre (et les sous-arbres enfants) dont il fait partie.

Voici l'ACI j'ai essayé (mais dont on obsiouvly ne fonctionne pas):

access to attrs=shadowLastChange 
    by self write 
    by dn="cn=admin,dc=www,dc=website,dc=com" write 
    by * read 

access to attrs=userPassword 
    by self write 
    by dn="cn=admin,dc=www,dc=website,dc=com" write 
    by anonymous auth by * none 

access to dn.base="" 
    by * read 

access to dn.subtree="cn=app1_users,ou=groups,dc=www,dc=website,dc=com" 
    by group.base="cn=app1_users,dc=www,dc=website,dc=com" write 
    by dn.base="cn=admin,dc=www,dc=website,dc=com" write 
    by * none 

access to dn.subtree="cn=app2_users,ou=groups,dc=www,dc=website,dc=com" 
    by group.base="cn=app2_users,dc=www,dc=website,dc=com" write 
    by dn.base="cn=admin,dc=www,dc=website,dc=com" write 
    by * none 

access to * 
    by self write 
    by dn="cn=admin,dc=www,dc=website,dc=com" write 
    by * read 

Y at-il quelque chose de mal avec ma configuration?

Répondre

0

Si cn=admin,... est votre rootDn, il a tous les droits et ne devrait pas être traité dans vos propres règles d'accès.

Pour essayer de gestion du groupe:

access to dn.base="cn=app1_users,ou=groups,dc=www,dc=website,dc=com" by group.exact="cn=app1_users,dc=www,dc=website,dc=com" write

Il y a une règle implicite dernière access to * by * none, donc pas besoin de by * none dans vos propres règles.

Généralement, ajoutez vos règles une par une à la liste - il est plus facile de regarder les effets de cette façon.