Способности, Группы и UP-Роли




Для определения соотношений между ролями выделим три вида ролей.

· Способности - роли, которые могут только иметь разрешения и другие способности как члены.

· Группы - роли, которые могут только иметь пользователей и другие группы как члены.

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

Термин UP-роли включает роли пользователей и разрешений. Мы используем такое определение для всех трех видов ролей или, имея в виду только UP-роли, в зависимости от контекста. Три вида ролей взаимно не пересекаются и идентифицированы соответственно как A, G, и UPR.

Главная причина выделения этих трех видов ролей - в том, что различные административные модели учитывают отношения установленные между этими ролями. Различие мотивировалось, во-первых, способностями. Способность - набор разрешений, которые должны быть назначены роли как отдельный модуль. Например способность открывать учетную запись в банковском приложении охватит большое число различных индивидуальных разрешений. Не имеет смысла назначать роли только некоторые из этих разрешений, потому что полный набор необходим, для решения задачи должным образом. Идея заключается в том, что эти разрешения в наборах, называемых способностями, должны быть назначены роли, как модуль, вместе.

Функция способности в том, чтобы собрать разрешения вместе так, чтобы администраторы могли обрабатывать их как отдельный модуль. Назначение способностей ролям - поэтому близко назначению разрешений к ролям. Для удобства полезно организовать способности в иерархию. Следовательно, модель PRA97 может быть приспособлена, для создания подобной ей модели ARA97 для назначения соотношения роль-способность.

После описания понятия способности, по аналогии приведем подобную концепцию, но со стороны пользователя.

Группа - набор пользователей, которые назначены как отдельный модуль на роль. Такая группа может рассматриваться как группа, которая является модулем, даже притом, что ее членство может изменяться со временем. Группы могут также быть организованы в иерархии. При назначении соотношения группа-роль мы приспосабливаем модель URA97, для создания модели GRA97.

Это приводит к следующим моделям.

Определение 4 Соотношение способность-роль и его аннулирование выполняются в ARA97 соответственно посредством: can-assigna Í AR x CR x 2A и can-revokea Í AR x 2A

Определение 5 Соотношение группа-роль и его аннулирование выполняются в GRA97 соответственно посредством: can-assigng Í AR x CR x 2G и can-revokeg Í AR x 2G.

Для этих моделей CR интерпретируется как набор необходимых условий, сформированных в процессе использования ролей в UPR, и необходимые условия интерпретируются относительно способностей и групп соответственно. Способность включена в UP-роль в том случае, если UP-роль доминирует над способностью и не включена - если не доминирует. И наоборот, группа включена в UP-роль, если группа доминирует над UP-ролью.

Отношение can-modify

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

Административная роль Диапазон UP-роли
DSO (ED, DIR)
PSO1 (E1, PL1)
PSO1 (E2, PL2)

Таблица 1: Пример can-modify

Например, на рис. 1 и 2 мы хотели бы, чтобы DSO конфигурировал изменения в иерархии ролей между DIR и ED. PSO1 будет управлять иерархией между PL1 и E1, принимая во внимание, что тогда PSO2 управлял бы частью между PL2 и E2. Отсюда, следующее определение.

Определение 6 Создание и удаление ролей и граней разрешается отношением, can-modify Í AR x 2UPR (где подмножества R определены диапазоном и не включают оконечные точки).

Таблица 1 иллюстрирует пример can-modify относительно иерархий рисунка 1. Значение can-modify(x, Y) - элемент административной роли x (или элемент административной роли, которая является старшей для x) может создавать и удалять роли в диапазоне Y и может изменять отношения между ролями в Y. Остальные примеры - все в контексте рисунка 1 и таблицы 1. Мы сознательно проигнорировали PSO2 в таблице и вместо этого уполномочили PSO1 управлять ролями обоих проектов. Это иллюстрирует, как единственная административная роль может управлять различными частями иерархии ролей.

Создание новой роли требует указания ее непосредственного родителя и ребенка в существующей иерархии. Таким образом PSO1 может создавать новую роль с непосредственным родителем PL1 и непосредственной дочерней ролью Е1, или новой роли с непосредственной родительской ролью PL1 и непосредственной дочерней ролью PE1. Вообще непосредственный родитель и ребенок должны попадать в пределы диапазона, или быть одной из оконечных точек как определено в can-modify. Так как создание роли также представляет две грани в иерархии, не возможно использовать любые две роли в качестве родителя и ребенка.

Удаление роли оставляет отношения между родителями и дочерним элементом удаляемой роли неизменными. Так, если DSO удаляет E1, PE1 и QE1 продолжают быть старшими для ED после удаления E1. Однако, удаление E1 оставит "мертвые связи" в таблице 1, так как диапазон (E1, Pl1) больше не существует. В целом, некоторые роли могут быть упомянуты в различных отношениях в URA97, PRA97 и RRA97. Если эти роли фактически удалены, мы будем иметь "повисшие ссылки". Наш подход состоит в том, чтобы запретить стирание, которое вызвало бы их. Роли, которые не могут быть удалены по этой причины, могут быть дезактивированы так, чтобы они позже могли постепенно сократиться. Кроме того, когда роль удалена, мы должны сделать что-то с пользователями и разрешениями, которые непосредственно назначены на эту роль.

Добавление грани имеет смысл только между несравнимыми узлами. Таким образом, добавление грани между PL1 и E1 не имеет никакого смысла. Также имеются грани, которые нельзя вставлять, потому что они могут привести к побочным эффектам, но об этом позднее.

Аналогично удаление грани значимо только, если эта грань транзитивно "не подразумевается" другими гранями. Например, удаление грани между PL1 и E1 бессмысленно и не воздействует на иерархию. Удаление грани между QE1 и E1 изменит иерархию. Удаление грани применяется только к отдельной грани и не переносится на подразумеваемые транзитивные грани. Например, удаление грани между QE1 и E1 делает QE1 и E1 несравнимыми, но QE1 продолжает быть старшим для ED.

Более сложные формы этих операций могут быть созданы из основных операций, представленных здесь. Представленный подход аналогичен определению слабого аннулирования, в URA97, и PRA97 из которого могут быть созданы различные формы сильного аннулирования. Точно так же в RRA97, более комплексные операции могут быть созданы в терминах основных.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: