Modeling Role Based Access Control in UML Based

Modeling Role Based Access Control in UML Based on 1. Towards A UML based approach to Role Engineering, by P. Epstein and R. Sandhu 2. UML-Based representation of RBAC, by Eonsuk Shin and Gail-Joon Ahn 3. RBAC Constraints Specification using OCL by Gail-Joon Ahn and Eonsuk Shin Precise Modeling UML Security 3 1

A Brief Introduction to RBAC • Permissions assigned to roles • Users play roles, and then they are bestowed with all permissions assigned to roles • Conflict exists between – Roles – Users – Permissions • Objective is to be able to play roles without conflicts Precise Modeling UML Security 3 2

The RBAC Model Precise Modeling UML Security 3 3

RBAC Continued • Users belong to groups • Groups, roles and objects may belong to hierarchies • Generally (but not always) senior roles have all permissions assigned to junior roles • Permissions can be + or • RCL 2000 is a language designed for RBAC specifications Precise Modeling UML Security 3 4

Towards A UML based approach to Role Engineering P. Epstein and R. Sandhu Precise Modeling UML Security 3 5

RBAC for Network Enterprises • Two groups – Application developers – Local system administrator • Application developer responsible for 1. Objects 2. Application Constraints 2. Object Handles 4. Application keys • Local System Administrator responsible for 5. Enterprise keys 7. Enterprise constraints Precise Modeling 6. Key chains UML Security 3 6

Layers for Application Developer 1. Objects: Attributes+ methods 2. Object handles: Set of objects 3. Application constraints: pre-requisite for granting access permissions 4. Application keys: Associates a role with objects 5. Application keys can be a leaf node of the hierarchy or a non-leaf (considered abstract) Precise Modeling UML Security 3 7

Layers for System Administrator 5. Enterprise Keys: Each application key is mapped to an enterprise key or a key chain. 6. Key Chains: Sets of enterprise keys 7. Enterprise Constraints: Enterprise key permits user to access methods of the object, if application constraints are satisfied Precise Modeling UML Security 3 8

Layers Continued • A user can be assigned enterprise keys that are part of different application key hierarchies • If a key inherits methods more than key, then in worse case the key contains the same method with different constraint • FNE Policy: constraints are logically “ored” Precise Modeling UML Security 3 9

Precise Modeling UML Security 3 10

Applying UML • Layer 1 – objects Precise Modeling UML Security 3 11

Layer 2: Object Handle Precise Modeling UML Security 3 12

Layer 3: Constraints Precise Modeling UML Security 3 13

Layer 4: Application Keys Precise Modeling UML Security 3 14

Layer 5: Enterprise Key Precise Modeling UML Security 3 15

Layer 6: Key Chains Precise Modeling UML Security 3 16

Layer 7: Enterprise Constraints Precise Modeling UML Security 3 17

Role Engineering of the 7 Layers Precise Modeling UML Security 3 18

UML-Based Representation of RBAC By Eonsuk Shin and Gail-Joon Ahn Precise Modeling UML Security 3 19

RBAC Model Again Precise Modeling UML Security 3 20

Details of the RBAC Model • U set of users, R set of disjoint roles, P set of disjoint permissions, S set of sessions • UA user-to-role mapping • PA permission-to-role mapping • RH role hierarchy • User S -> U gives user of session • Role S -> 2**R gives roles of session • Constraints about conflicts Precise Modeling UML Security 3 21

UML Static Model for RBAC Precise Modeling UML Security 3 22

Attributes of Entity Classes Precise Modeling UML Security 3 23

Use Cases in RBAC Precise Modeling UML Security 3 24

RBAC Constraints Specification using OCL By Gail-Joon Ahn and Eonsuk Shin Precise Modeling UML Security 3 25

Example Application constraints in OCL Context Company inv: Self. employee->size>200 Context Company inv: Self. employee->select(age>50)->not. Empty Precise Modeling UML Security 3 26

RBAC Constraints 1 • Separation of duty constraints context User inv: let M : Set = {{accounts_mgr, purchase_mgr}, } in M->select{m|self. role->intersction(m)-> size->1)->is. Empty Precise Modeling UML Security 3 27

Prerequisite and Cardinality Constraints • context User inv: self. role->includes(“tester”) implies self. role->includes(“project_team”) • context Role inv: self. user->select(u|self. name=“chairman”) ->size =1 Precise Modeling UML Security 3 28
- Slides: 28