Расширяемая система авторизации
От: adontz Грузия http://adontz.wordpress.com/
Дата: 25.08.07 17:47
Оценка:
Дано: пользователи, группы пользователей, права доступа, роли пользователей.

Группы могут включать пользователей и другие группы. Группа может быть включена в несколько групп, лишь бы не было циклов.

Права доступа объединяются в роли.

Группам, но не пользователям, назначаются роли.

Проверка наличия права доступа у пользователя выглядит как:
Есть ли среди всех групп пользователей, в которые входит данный пользователь прямо или косвенно те, которым назначена роль разрешающая право доступа одновременно с отсутствием групп пользователей, в которые входит данный пользователь прямо или косвенно, у которых назначена роль запрещающая право доступа?

Проблема в том, что группы и пользователи могут быть по отношению к системе внешние (например, из Active Directory или любого другого LDAP-каталога), а права доступа и роли пользователей тоже необходимо иметь возможность хранить по-разному (например, в базных БД).

Это всё на фоне очень жёстких требований по производительности операции проверки наличия права доступа у пользователя.

Что делать? Есть ли какие-то стандартные схемы?
A journey of a thousand miles must begin with a single step © Lau Tsu
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.