2011-08-25 15 views
5

Qual è la differenza tra l'attributo b/n memberOf e l'attributo groupMembership quando utilizzato nelle impostazioni di autenticazione LDAP in Liferay?memberOf vs. groupMembership in LDAP (Liferay)

Gli utenti vengono importati correttamente. Anche i gruppi vengono importati correttamente.

Ma gli utenti non vengono assegnati automaticamente ai gruppi. E quando ho cambiato la variabile di gruppo da 'groupMembership' a 'memberOf', molti utenti non sono in grado di accedere a Liferay.

Quali sono esattamente le variabili memberOf e groupMembership?

LDAP Liferay Settings

risposta

13

memberOf non è una "variabile", è un attributo, o più precisamente, si tratta di un attributo virtuale o un attributo dinamica generata al volo da parte di alcuni server di directory, ma non tutti. Alcuni usano memberOf da usare nei filtri di ricerca o nell'elenco di attributi di una richiesta di ricerca, alcuni usano isMemberOf per lo stesso scopo, alcuni supportano entrambi o nessuno dei due, e probabilmente ci sono altri idiomi di cui non sono a conoscenza.

In generale, per determinare l'appartenenza al gruppo, inviare una richiesta di ricerca al server di directory e specificare memberOf o isMemberOf da restituire nell'elenco degli attributi. Ecco un esempio utilizzando un moderno strumento a riga di comando ldapsearch:

ldapsearch --port 1389 --baseDn 'ou=people,dc=example,dc=com' \ 
    --sizeLimit 3 --searchScope one --bindDn 'cn=directory manager' \ 
    --bindPasswordFile ~/.pwdFile '(uid=user.0)' isMemberOf 
dn: uid=user.0,ou=people,dc=example,dc=com 
isMemberOf: cn=Dynamic Home Directories,ou=groups,dc=example,dc=com 
isMemberOf: cn=bellevue,ou=groups,dc=example,dc=com 
isMemberOf: cn=shadow entries,ou=groups,dc=example,dc=com 
isMemberOf: cn=persons,ou=groups,dc=example,dc=com 

Questa risposta di ricerca ha indicato che user.0 è un membro dei gruppi elencati.

Per invertire il senso della query, cioè, per determinare quali voci sono il membro di un gruppo, utilizzare il isMemberOf o memberOf con un'affermazione nel filtro utilizzato nella richiesta di ricerca:

ldapsearch --port 1389 --baseDn 'ou=people,dc=example,dc=com' \ 
    --sizeLimit 3 --searchScope one --bindDn 'cn=directory manager' \ 
    --bindPasswordFile ~/.pwdFile \ 
    '(isMemberOf=cn=persons,ou=groups,dc=example,dc=com)' 1.1 
dn: uid=terrygardner,ou=people,dc=example,dc=com 

dn: uid=user.0,ou=people,dc=example,dc=com 

dn: uid=user.1,ou=People,dc=example,dc=com 

dn: uid=user.10,ou=People,dc=example,dc=com 

Questa risposta alla ricerca indica che ci sono diversi membri del gruppo il cui nome distinto è cn=persons,ou=groups,dc=example,dc=com.

Sebbene non specifico per LifeRay, quanto sopra è una spiegazione generale di un modo per gestire l'appartenenza ai gruppi e anche l'appartenenza al gruppo inverso da una prospettiva LDAP.

+0

Anche se non hai risposto direttamente alla mia domanda, mi hai fornito più di informazioni sufficienti per capire di cosa si tratta. Grazie, Terry. Apprezzalo. –