«объекты» в системе RBAC - PullRequest
2 голосов
/ 18 июля 2011

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

При рассмотрении образца модели данных объекты привязаны к разрешениям.

http://www.mind -it.info / 2010/01/09 / nist-rbac-data-model /

это выглядит как отношение один ко многим между объектами и разрешениями, что делаетсмысл.

однако мне интересно, должны ли эти "объекты" быть абстрактными или конкретными?

наша система будет иметь несколько ограниченных типов объектов;в качестве примера, скажем, «новости», «события» и «альбомы».разрешения и роли, скорее всего, будут приписываться этим типам, поскольку все экземпляры объектов любого из этих типов будут требовать одинаковых разрешений и доступности для разных ролей.

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

поэтому мне было бы интересно, действительно ли эти "объекты" являются абстрактными типами объектов, которые связаны сроль, или если эти "объекты" сами являются экземплярами объекта?(или, если модель rbac допускает любую реализацию ...)

спасибо!

1 Ответ

0 голосов
/ 19 июля 2011

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

Подумайте об этом, пока вы разрабатываете, скажем, функциональность «Добавить новость», вы создаете разрешение, называемое чем-токак "addNewsItem".Затем вы просто привязываете это разрешение к ролям, для которых вы хотите иметь эту способность.

Прелесть этой системы в том, что когда вы кодируете свои разрешения, привязанные к объектам (например, элементу добавления), вам никогда не придется менятьэто если ваши пользователи или роли когда-либо меняются.«Добавить новость» всегда будет нуждаться в разрешении «addNewsItem».Это никогда не изменится.

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

Его на самом деле довольно легко реализовать.Вот пост, который я сделал с некоторыми основами реализации:

ColdFusion: параметры приложения, основанные на роли?

...