Нечеткое управление пользователями в веб-приложениях - PullRequest
2 голосов
/ 07 февраля 2011

Я немного озадачен управлением ролями в веб-приложениях.
Предположение: пользователь принадлежит роли, одна роль имеет одно или несколько разрешений, и разрешение может быть следующим: просмотреть страницу options.html.

Если роль состоит из прав (просмотрите эту страницу, просмотрите эту страницу и т. Д.), Как мы должны проверить, какую страницу пользователь может видеть в нашем коде?

Два варианта приходили мне в голову:
a) Уровень роли: если пользователь является участником этой роли, показать страницу ...
б) Уровень разрешения: если у пользователя есть разрешение ToViewThatPage, то показать страницу ...

Если а) путь, то зачем нам разрешения?
Роль администратора имеет право просматривать эту страницу, а затем кто-то приходит и меняет разрешение.
В нашем коде мы спрашиваем, является ли пользователь участником роли администратора, но мы не проверяем разрешение.

Вопрос:
Как вы управляете ролями / разрешениями пользователей в вашем исходном коде (JSP / JSF, ASP.NET)?

Ответы [ 3 ]

2 голосов
/ 07 февраля 2011

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

Лучший вариант - при необходимости для функций на странице требуются разрешения,если пользователи принадлежат одной или нескольким ролям, то есть способ сопоставить роли с разрешениями.

1 голос
/ 07 февраля 2011

б). Вы правы, если не собираетесь использовать определенные вами разрешения, тогда они вам не нужны. Но, учитывая ваши текущие настройки, вы должны просто разрешения. Лучший способ справиться с проблемой администратора - это предоставить роли администратора все разрешения, а не добавлять отдельную проверку роли для пользователя.

0 голосов
/ 07 февраля 2011

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

...