Журнал Системный Администратор, Март 2005

Журнал Системный Администратор

Март 2005

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


PhpGACL – cистема управления правами

Кирилл Сухов

Авторизация, аутентификация – эти проблемы всегда появляются при разработке многопользовательских веб-приложений. Для их решения применяются различные механизмы, которые давно и хорошо известны. Задача контроля прав доступа несколько сложнее, а её универсальное решение с произвольным количеством объектов и субъектов, причём с простым управлением вырастает в довольно серьёзную работу. Я не раз и не два наблюдал, как программист создал собственную систему управления правами, да и сам изобрёл пару велосипедов на этом фронте. PhpGACL – это набор функций, призванный если и не решить проблему управления правами раз и навсегда, то по крайней мере, значительно её упростить. Он легко встраивается в готовое приложение и позволяет реализовать довольно сложную схему полномочий пользователей. Объектами доступа могут быть веб-страницы сайта, базы данных, другие пользователи, хосты и т. д. Для установки не требуется ничего, кроме наличия реляционной базы данных (PostgreSQL, MySQL, Oracle, Interbase или библиотеки SQLite) и абстрактный класс доступа к базам данных ADOdb.

Для чего нужна система управления правами?

Как пример приложения возьмём веб-интерфейс к клиентской базе некого телекоммуникационного предприятия. Доступ к нему в той или иной степени имеют все сотрудники, с той разницей, что, если такие атрибуты, как ФИО, контактные телефоны, email, общедоступны (на чтение), то с более конфиденциальной информацией, такой как финансовая история, технические детали, могут быть ознакомлены только те, кто по своим должностным обязанностям имеют на это право. Изменять наиболее важные сведения (состояние лицевого счёта, атрибуты контракта) имеют право лишь несколько сотрудников, несущих ответственность за свои действия. Кроме того, есть ещё индивидуальные роли – секретарь должен иметь доступ к финансовой истории, чтобы отвечать клиентам на претензии, скажем, по поводу приостановки услуги за неуплату, он же должен иметь возможность изменять некоторые атрибуты клиента (состояние услуги, или, скажем, ФИО), системному инженеру должна быть доступна возможность менять сетевые параметры и т. д.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке
oread