-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAhnSandhuPaper2000.rcl
34 lines (30 loc) · 1.63 KB
/
AhnSandhuPaper2000.rcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/* from Gail-Joon Ahn and Ravi Sandhu.
Role-based authorization constraints specification.
ACM Trans. Inf. Syst. Secur., 3(4):207–226, November 2000
*/
// examples p 214
|roles(OE(U)) ∩ OE(CR)| ≤ 1 // SOD // also Example 2 p 217
OE(OE(CR)) ∈ roles(OE(U)) ⇒ AO(OE(CR)) ∩ roles(OE(U)) = ∅ // alternative 1
user(OE(OE(CR))) ∩ user(AO(OE(CR))) = ∅ // alternative 2
|roles(OE(sessions(OE(U)))) ∩ OE(CR)| ≤ 1 // DSOD active roles in single session
|roles(sessions(OE(U))) ∩ OE(CR)| ≤ 1 // DSOD for all sessions of a user
roles(OE(OE(CP))) ∩ roles(AO(OE(CP))) = ∅ // permission-centric
// Example 1 p 216 // also (4) p 218
OE(OE(CR)) ∈ roles(OE(U)) ⇒ AO(OE(CR)) ∩ roles(OE(U)) = ∅
// Table I p 223 // OE(R) ∪ OE(CR) in 4. is/was wrongly typed
|roles*(OE(U)) ∩ OE(CR)| ≤ 1 // 1. SOOD-CR
|permissions(roles*(OE(U))) ∩ OE(CP)| ≤ 1 // 2. SOOD-CP
|permissions(roles*(OE(U))) ∩ OE(CP)| ≤ 1
∧ |permissions*(OE(R)) ∩ OE(CP)| ≤ 1 // 3. Var 2.
|roles*(OE(U)) ∩ OE(CR)| ≤ 1
∧ |permissions*(OE(R)) ∩ OE(CP)| ≤ 1 ⇒ OE(R) ∪ OE(CR) ≠ ∅ // 4. Var 1.
|roles*(OE(U)) ∩ OE(CR)| ≤ 1
∧ |user*(OE(CR)) ∩ OE(CU)| ≤ 1 // 5. SSOD-CU
|roles*(OE(U)) ∩ OE(CR)| ≤ 1
∧ |permissions*(OE(R)) ∩ OE(CP)| ≤ 1 ⇒ OE(R) ∪ OE(CR) ≠ ∅
∧ |user*(OE(CR)) ∩ OE(CU)| ≤ 1 // 6. 4. /\ 5.
// Table II p 224
|roles*(sessions(OE(U))) ∩ OE(CR)| ≤ 1 // 1. User-based DSOD
|roles*(sessions(OE(OE(CU)))) ∩ OE(CR)| ≤ 1 // 1-1. User-based DSOD with CU
|roles*(OE(sessions(OE(U)))) ∩ OE(CR)| ≤ 1 // 2. Session-based DSOD
|roles*(OE(sessions(OE(OE(CU))))) ∩ OE(CR)| ≤ 1 // 2-1. 2. with CU