При добавлении роли к субъекту применяются правила, связывающие тип и роль субъекта, инициирующего изменения, с целевым типом субъекта, к которому добавляется роль.
Добавление ролей позволяет динамически (во время исполнения) расширять права субъектов.
Элемент add_role
может содержать несколько правил. Правила применяются последовательно (порядок важен) до тех пор, пока не будет найдено первое, непротиворечащее комбинации значений source_type
, source_role
, и target_type
. Другими словами, для применения правила необходимо, чтобы:
source_type
.source_role
.target_type
.Варианты задания типа субъекта, инициирующего добавление ролей (элемент source_type
):
source_type: core
source_type: [core, dispatcher]
source_type: @any
Варианты задания роли субъекта, инициирующего добавление ролей (элемент source_role
):
source_role: system
source_role: [system, user]
source_role: @any
Варианты задания исходного типа целевого субъекта (элемент target_type
):
original_type: core
original_type : @source_type
original_type: [core, dispatcher, @source_type]
original_type: @any
Варианты задания допустимых ролей для целевого субъекта (элемент target_role
):
target_role: core
target_role: @source_role
target_role: [core, dispatcher]
target_role: @any
Пример
add_role : [
{ source_type: dispatcher
, source_role: system
, target_type: [auditservice, fileservice]
, target_role: [user, admin]
},
]
В начало