Аргерих Л. О языке РНР. Часть 3. Страница 123


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/ ).




Если вы стремитесь к тому, чтобы ваш сайт приносил максимальную прибыль, тогда вам стоит обратиться в компанию MiraLab.ru. Здесь вам предложат качественный и подробный маркетинговый анализ сайта, который поможет вам поднять популярность вашего ресурса.