Расширение dynlist позволяет создавать группы на основе поисковых запросов. Данная технология имеет ограничения - содержание группы формируется в момент чтения объекта(выполняется вложенный запрос). Но тем не менее динамические группы позволяют существенно расширить функциональность каталога.
Для активации данного расширения необходимо подключить схему dyngroup.schema и загрузить расширение dynlist:
затем в описании базы добавить расширение и определение атрибутов:
После перезагрузки конфигурации сервера OpenLDAP можно создавать динамические списки, например так:
Наибольший интерес представляет поле memberURL - это поисковый запрос LDAP, записанный в виде URI:
ldap://[ip or host]/ - протокол (ldap, ldaps или ldapi) доступа к серверу и его ip-адрес или имя хоста. Если адрес не указывается, то поиск выполняется на том же сервере OpenLDAP, к которому происходит обращение при чтении динамического списка.
ou=users,dc=example,dc=com - база для выполнения поискового запроса
?cn,sn - список атрибутов, которые должен вернуть поисковый запрос и которые будут отображены в экземпляре объекта
?sub - поиск производится без ограничений глубины вложенности
?(cn=admin1*) - сам поисковый запрос
Более подробно формирование поисковых запросов прасмотренно в статье Поиск в LDAP.
Если у нас в каталоге храняться следующие объекты:
Применение динамеческих списков при практической эксплуатации каталога ограничена только вашей фантазией и возможностями описания поисковых запросов в LDAP.
Для активации данного расширения необходимо подключить схему dyngroup.schema и загрузить расширение dynlist:
include /etc/openldap/schema/dyngroup.schema moduleload dynlist.la
затем в описании базы добавить расширение и определение атрибутов:
overlay dynlist dynlist-attrset groupOfURLs memberURL
После перезагрузки конфигурации сервера OpenLDAP можно создавать динамические списки, например так:
dn: cn=server1,ou=special,dc=example,dc=com objectClass: groupOfURLs cn: server1 memberURL: ldap:///ou=users,dc=example,dc=com?cn,sn?sub?(cn=admin1*)
Наибольший интерес представляет поле memberURL - это поисковый запрос LDAP, записанный в виде URI:
ldap://[ip or host]/ - протокол (ldap, ldaps или ldapi) доступа к серверу и его ip-адрес или имя хоста. Если адрес не указывается, то поиск выполняется на том же сервере OpenLDAP, к которому происходит обращение при чтении динамического списка.
ou=users,dc=example,dc=com - база для выполнения поискового запроса
?cn,sn - список атрибутов, которые должен вернуть поисковый запрос и которые будут отображены в экземпляре объекта
?sub - поиск производится без ограничений глубины вложенности
?(cn=admin1*) - сам поисковый запрос
Более подробно формирование поисковых запросов прасмотренно в статье Поиск в LDAP.
Если у нас в каталоге храняться следующие объекты:
ldapsearch -b ou=users,dc=example,dc=com -x -LLL dn: ou=users,dc=example,dc=com objectClass: organizationalUnit ou: users dn: cn=admin11,ou=users,dc=example,dc=com objectClass: person sn: Server1 admin cn: admin11 userPassword:: dGVzdA== dn: cn=admin12,ou=users,dc=example,dc=com objectClass: person sn: Server1 admin cn: admin12 userPassword:: dGVzdA== dn: cn=admin21,ou=users,dc=example,dc=com objectClass: person sn: Server2 admin cn: admin21 userPassword:: c2VjcmV0то запрос к нашему динамеческому списку вернет следующий результат:
ldapsearch -b cn=server1,ou=special,dc=example,dc=com -x -s base -LLL dn: cn=server1,ou=special,dc=example,dc=com objectClass: groupOfURLs cn: server1 cn: admin11 cn: admin12 memberURL: ldap:///ou=users,dc=example,dc=com?cn,sn?sub?(cn=admin1*) sn: Server1 admin
Применение динамеческих списков при практической эксплуатации каталога ограничена только вашей фантазией и возможностями описания поисковых запросов в LDAP.
Комментариев нет:
Отправить комментарий