displayErrMsg("Addition to directory failed !!"); closeConnection(Slinkldentifier); returnToMain(); exit;
>
} else {
displayErrMsg("Connection to LDAP server failed!");
exit;
>
}
f ?>
Типичный экран, на котором пользователю предлагается ввести атрибуты, выглядит, как показано ниже (рис. 14.9):
В связи с этим приложением необходимо высказать некоторые предостережения — дело в том, что оно предназначено исключительно для иллюстрации API PHP для LDAP и не является полноценным промышленным приложением. Как уже отмечалось, весьма рекомендуется указывать состояние аутентификации посредством сеансов HTTP. У следующих пользователей, созданных с помощью данного алгоритма, нет поля пароля, и потому модификация таких записей в данном случае невозможна.
Для того чтобы начать работу с приложением, можно загрузить в каталог образец информации о пользователе с помощью утилиты которая поставляется с большей частью клиентского программного обеспечения LDAP, а затем с ней работать. Типичный пример может выглядеть так:
dn-. o=Foo Widgets, c=us objectclass: top objectclass: organization
o: Foo Widgets
dn: ou=Engineering, o=Foo Widgets, c-us objectclass: top objectclass: organizationalUnit ou: Engineering
dn: ou=Marketing, o=Foo Widgets, c=us objectclass: top objectclass: organizationalUnit ou: Marketing
dn: mail=mailto:faginm@foowi.com">faginm@foowi.com, ou=Engineering, o=Foo Widgets, C=us
cn: Fagin
sn: Maddog
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
mail: faginmefoowi.com
ou: Engineering
employeenumber: 3123283622
telephonenumber: 666-767-2000
userpassword: faginml23
dn: mail=mailto:maryx@foowi.com">maryx@foowi.com, ou=Marketing, o=Foo Widgets, c=us
cn: Mary
sn: Xeyed
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
mail: mailto:maryx@foowi.com">maryx@foowi.com
ou: Marketing
employeenumber: 3223453622
telephonenumber: 111-767-2000
userpassword: maryx123
Кроме того, для выполнения приложения нужен OpenLDAP, поэтому для установления контроля доступа необходимо добавить в slapd.conf следующие строки и перезапустить slapd:
access to attr=userPassword by self write by anonymous by * none
access to *
by self write
by dn="cn=Admin,o=Foo Widgets,c=us" write by * read
Первый блок указывает, что любой пользователь может модифицировать свой пароль и привязаться к серверу анонимно для аутентификации с паролем, находящемся в хранилище. Второй блок указывает, что данный пользователь может модифицировать свои атрибуты, равно как и пользователь с правами администратора. Кроме того, он указывает, что у всех пользователей есть доступ только для чтения ко всем другим атрибутам всех остальных записей, благодаря чему все пользователи могут выполнять в каталоге поиск. Дополнительные сведения о контроле доступа в OpenLDAP можно найти в руководстве администратора OpenLDAP (http://www.openldap.org/doc/admin/"> http://www.openldap.org/doc/admin/ ).