Как добавить / включить атрибут memberOf в Oracle Directory Server Enterprise Edition
Я подтверждаю, что MemberOf Plugin
включен в Oracle Directory Server, memberOf
атрибут находится в списке стандартных атрибутов в схеме: атрибуты. В подробностях атрибута memberOf есть три записи в Used as Allowed by
список: inetAdmin
, inetUser
, nsManagedPerson
,
Но все учетные записи пользователей не принадлежат им. Вместо этого у них есть ObjectClass: inetOrgPerson
, organizationalPerson
, person
, top
, И кажется, что я не могу добавить дополнительный ObjectClass для пользователя.
Как включить или добавить атрибут memberOf в существующую учетную запись пользователя? И как он может автоматически заполнять имя группы или DN всей учетной записи пользователя?
2 ответа
Как указал ixe013, ODSEE называет свой атрибут "isMemberOf" вместо "memberOf". В OpenLDAP ваш поиск будет выглядеть следующим образом:
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "memberOf"
Для ODSEE вы должны использовать следующее:
ldapsearch -x -w password -D "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" -b "uid=abergin,ou=People,dc=odsee-qa,dc=qa,dc=abc,dc=com" '(objectclass=*)' "isMemberOf"
Который возвращает что-то вроде следующего:
version: 1
dn: uid=abergin, ou=People, dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=QA Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
isMemberOf: cn=Accounting Managers,ou=groups,dc=odsee-qa,dc=qa,dc=abc,dc=com
Я больше не использую устаревший DSEE, но если я правильно помню, memberOf
Атрибут генерируется сервером каталогов на основе членства в группе, а не добавляется в запись. Например, если группа имеет атрибуты:
dn: cn=staff,ou=groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
objectClass: posixGroup
description: The 'staff' group.
cn: staff
gidNumber: 50
memberUid: debianuser
memberUid: user1
uniqueMember: uid=user1,ou=people,dc=example,dc=com
И запись user1
имеет атрибуты:
dn: uid=user1,ou=people,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: user1
cn: my-common-name
sn: my-surname
loginShell: /bin/bash
userPassword: {SSHA512}SCMmLlStPIxVtJc8Y6REiGTMsgSEFF7xVQFoYZYg39H0nEeDuK/fWxxNZ
CdSYlRgJK3U3q0lYTka3Nre2CjXzeNUjbvHabYP
homeDirectory: /home/user1
uidNumber: 1002
gidNumber: 50
shadowLastChange: 15645
запрашивая memberOf
Атрибут дает следующее:
ldapsearch -LLLh localhost -p 1389 -D cn=RootDN -w xxxxxx -b uid=user1,ou=people,dc=example,dc=com -s base -l1 -z1 '(&)' memberOf
dn: uid=user1,ou=people,dc=example,dc=com
memberOf: cn=staff,ou=groups,dc=example,dc=com
memberOf
Атрибут не физический атрибут, а виртуальный атрибут.
Если клиент LDAP не может добавить objectClass
Приписать запись, есть несколько возможных причин:
- состояние авторизации клиента LDAP не позволяет клиенту изменять запись
- клиент LDAP пытается добавить второй структурный атрибут objectClass к записи. Несколько структурных объектных классов являются недопустимыми, но некоторые сломанные версии устаревшего Sun DSEE допускают это в любом случае.