Поиск LDAP в eDirectory возвращает результаты в зависимости от количества атрибутов, возвращенных для пользователя (inetOrgPerson).
Когда объект создается в eDirectory, списки ACL по умолчанию можно добавить в этот объект. Это зависит от шаблонов ACL в определении схемы для objectClass, к которому принадлежит объект. Например, в конфигурации по умолчанию для inetOrgPerson можно добавить до шести списков ACL на пользовательский объект. Запрос поиска LDAP на возврат клиенту этого объекта «Пользователь» со всеми атрибутами займет немного больше времени по сравнению с возвратом объекта «Пользователь» без атрибутов ACL.
Хотя списки ACL по умолчанию можно отключить, администраторы могут не захотеть отключать их, поскольку они нужны для лучшего управления доступом. Однако можно повысить производительность поиска, не запрашивая их, или пометив их атрибутами, отфильтрованными для чтения. Эти изменения не нарушают никаких приложений, поскольку большинство приложений используют эффективные привилегии и не полагаются на те или иные списки управления доступом.
Не запрашивать списки ACL. Атрибут «ACL» не потребуется для нескольких приложений, поэтому приложения можно изменить, чтобы они запрашивали определенные необходимые для них атрибуты. Это приводит к повышению производительности поиска LDAP.
Пометка ACL как фильтрованного только для чтения. Если приложение нельзя изменить, arf_acl.ldif может использоваться администратором для того, чтобы пометить атрибут «ACL» как фильтрованный для чтения. Если ACL отмечен как фильтрованный для чтения атрибут, то при запросе всех атрибутов сервер не возвращает данный атрибут элемента. Однако данный атрибут возвращается, если поиск LDAP выполняется для возврата операционных атрибутов или если в запросе определенно указаны атрибуты ACL. Для отключение флага фильтрации для чтения в атрибуте ACL можно использовать файл rrf_acl.ldif. Эти файлы LDIF влияют на атрибут ACL в схеме, поэтому их может расширить только пользователь с правами супервизора в корне дерева.
По умолчанию ACL не помечается как фильтрованный для чтения, поэтому преимущества запросов на возврат всех атрибутов не проявляются.
В следующей таблице указано положение файлов arf_acl.ldif и rrf_acl.ldif в разных платформах.
Платформа |
Местоположение |
---|---|
Linux |
|
Windows |
|
Чтобы повысить производительность массовой загрузки, можно отключить шаблоны списка управления доступом (ACL, Access Control List). В результате этого некоторые списки ACL будут отсутствовать. Однако можно разрешить это, добавив требуемые списки в файл LDIF или применив их позже.
Выполните следующую команду:
ldapsearch -D cn_of_admin -w password -b cn=schema -s base objectclasses=inetorgperson
Эта команда выводит указанные ниже данные:
dn: cn=schema
objectClasses: (2.16.840.1.113730.3.2.2 NAME ’inetOrgPerson’ SUP
organizationalPerson STRUCTURAL MAY (groupMembership $ ndsHomeDirectory
$ loginAllowedTimeMap $ loginDisabled $ loginExpirationTime $
loginGraceLimit $ loginGraceRemaining $ loginIntruderAddress $
loginIntruderAttempts $ loginIntruderResetTime $
loginMaximumSimultaneous $ loginScript $ loginTime $
networkAddressRestriction $ networkAddress $ passwordsUsed $
passwordAllowChange $ passwordExpirationInterval $
passwordExpirationTime $ passwordMinimumLength $ passwordRequired $
passwordUniqueRequired $ printJobConfiguration $ privateKey $ Profile $
publicKey $ securityEquals $ accountBalance $ allowUnlimitedCredit $
minimumAccountBalance $ messageServer $ Language $ UID $
lockedByIntruder $ serverHolds $ lastLoginTime $ typeCreatorMap $
higherPrivileges $ printerControl $ securityFlags $ profileMembership $
Timezone $ sASServiceDN $ sASSecretStore $ sASSecretStoreKey $
sASSecretStoreData $ sASPKIStoreKeys $ userCertificate
$ nDSPKIUserCertificateInfo $ nDSPKIKeystore $ rADIUSActiveConnections $
rADIUSAttributeLists $ rADIUSConcurrentLimit $ rADIUSConnectionHistory
$ rADIUSDefaultProfile $ rADIUSDialAccessGroup $ rADIUSEnableDialAccess
$ rADIUSPassword $ rADIUSServiceList $ audio $ businessCategory $
carLicense $ departmentNumber $ employeeNumber $ employeeType $
givenName $ homePhone $ homePostalAddress $ initials $ jpegPhoto $
labeledUri $ mail $ manager $ mobile $ pager $ ldapPhoto $
preferredLanguage $ roomNumber $ secretary $ uid $ userSMIMECertificate
$ x500UniqueIdentifier $ displayName $ userPKCS12) X-NDS_NAME ’User’ X
-NDS_NOT_CONTAINER ’1’ X-NDS_NONREMOVABLE ’1’ X-NDS_ACL_TEMPLATES (’2#subtree#[Self]#[All Attributes Rights]’ ’6#entry#[Self]#loginScript’ ’1#subtree#[Root Template]#[Entry Rights]’ ’2#entry#[Public]#messageServer’ ’2#entry#[Root Template]#groupMembership’ ’6#entry#[Self]#printJobConfiguration’ ’2#entry#[Root Template]#networkAddress’))
В выводе, который указан в предыдущем действии, удалите информацию, которая выделена полужирным цветом.
Сохраните отредактированный вывод как файл LDIF.
Добавьте указанные ниже строки в новый сохраненный файл LDIF:
dn: cn=schema
changetype: modify
delete: objectclasses
objectclasses: (2.16.840.1.113730.3.2.2)
-
add:objectclasses
Теперь ваш файл LDIF должен иметь такой вид:
dn: cn=schema
changetype: modify
delete: objectclasses
objectclasses: (2.16.840.1.113730.3.2.2)
-
add:objectclasses
objectClasses: (2.16.840.1.113730.3.2.2 NAME ’inetOrgPerson’ SUP organizationalPerson STRUCTURAL MAY (groupMembership $ ndsHomeDirectory $ loginAllowedTimeMap $ loginDisabled $ loginExpirationTime $ loginGraceLimit $ loginGraceRemaining $ loginIntruderAddress $ loginIntruderAttempts $ loginIntruderResetTime $ loginMaximumSimultaneous $ loginScript $ loginTime $ networkAddressRestriction $ networkAddress $ passwordsUsed $ passwordAllowChange $ passwordExpirationInterval $ passwordExpirationTime $ passwordMinimumLength $ passwordRequired $ passwordUniqueRequired $ printJobConfiguration $ privateKey $ Profile $ publicKey $ securityEquals $ accountBalance $ allowUnlimitedCredit $ minimumAccountBalance $ messageServer $ Language $ UID $ lockedByIntruder $ serverHolds $ lastLoginTime $ typeCreatorMap $ higherPrivileges $ printerControl $ securityFlags $ profileMembership $ Timezone $ sASServiceDN $ sASSecretStore $ sASSecretStoreKey $ sASSecretStoreData $ sASPKIStoreKeys $ userCertificate $ nDSPKIUserCertificateInfo $ nDSPKIKeystore $ rADIUSActiveConnections $ rADIUSAttributeLists $ rADIUSConcurrentLimit $ rADIUSConnectionHistory $ rADIUSDefaultProfile $ rADIUSDialAccessGroup $ rADIUSEnableDialAccess $ rADIUSPassword $ rADIUSServiceList $ audio $ businessCategory $ carLicense $ departmentNumber $ employeeNumber $ employeeType $ givenName $ homePhone $ homePostalAddress $ initials $ jpegPhoto $ labeledUri $ mail $ manager $ mobile $ pager $ ldapPhoto $ preferredLanguage $ roomNumber $ secretary $ uid $ userSMIMECertificate $ x500UniqueIdentifier $ displayName $ userPKCS12) X-NDS_NAME ’User’ X-ND S_NOT_CONTAINER ’1’ X -NDS_NONREMOVABLE ’1’)
Введите следующую команду:
ldapmodify -D cn_of_admin -w password -f LDIF_file_name