diff options
author | asteroide <thomas.duval@orange.com> | 2017-05-09 10:16:06 +0200 |
---|---|---|
committer | asteroide <thomas.duval@orange.com> | 2017-05-09 10:16:06 +0200 |
commit | 4dc3cabba46fad28f5018aea516c560d497e9147 (patch) | |
tree | ac74e7a9b8dfd627be0326117e99a83005574dd2 /moonv4/moon_interface/tests/apitests/scenario | |
parent | 94aa78ca23c4db13a0752fbdd0df96730b1e7288 (diff) |
Add instructions tag in each rule
Change-Id: Ib63ad8c4b2261d993ee156fae18fd315a775dbd0
Diffstat (limited to 'moonv4/moon_interface/tests/apitests/scenario')
4 files changed, 120 insertions, 6 deletions
diff --git a/moonv4/moon_interface/tests/apitests/scenario/delegation.py b/moonv4/moon_interface/tests/apitests/scenario/delegation.py new file mode 100644 index 00000000..839e74ce --- /dev/null +++ b/moonv4/moon_interface/tests/apitests/scenario/delegation.py @@ -0,0 +1,40 @@ + +pdp_name = "pdp1" +policy_name = "Delegation policy example" +model_name = "Delegation" + +subjects = {"user0": "", } +objects = {"user1": "", } +actions = {"delegate": ""} + +subject_categories = {"subjectid": "", } +object_categories = {"delegated": "", } +action_categories = {"delegation-action": "", } + +subject_data = {"subjectid": {"user0": ""}} +object_data = {"delegated": {"user1": ""}} +action_data = {"delegation-action": {"delegate": ""}} + +subject_assignments = {"user0": {"subjectid": "user0"}} +object_assignments = {"user1": {"delegated": "user1"}} +action_assignments = {"delegate": {"delegation-action": "delegate"}} + +meta_rule = { + "session": {"id": "", "value": ("subjectid", "delegated", "delegation-action")}, +} + +rules = { + "session": ( + { + "rule": ("user0", "user1", "delegate"), + "instructions": ( + { + "update": {"request:subject": "user1"} # update the current user with "user1" + }, + {"chain": {"security_pipeline": "rbac"}} + ) + }, + ) +} + + diff --git a/moonv4/moon_interface/tests/apitests/scenario/mls.py b/moonv4/moon_interface/tests/apitests/scenario/mls.py index e36a86bc..3a3ded43 100644 --- a/moonv4/moon_interface/tests/apitests/scenario/mls.py +++ b/moonv4/moon_interface/tests/apitests/scenario/mls.py @@ -38,8 +38,17 @@ meta_rule = { rules = { "mls": ( - ("high", "medium", "vm-action"), - ("high", "low", "vm-action"), - ("medium", "low", "vm-action"), + { + "rules": ("high", "medium", "vm-action"), + "instructions": ({"decision": "grant"}) + }, + { + "rules": ("high", "low", "vm-action"), + "instructions": ({"decision": "grant"}) + }, + { + "rules": ("medium", "low", "vm-action"), + "instructions": ({"decision": "grant"}) + }, ) } diff --git a/moonv4/moon_interface/tests/apitests/scenario/rbac.py b/moonv4/moon_interface/tests/apitests/scenario/rbac.py index cd08308e..a43bd1f4 100644 --- a/moonv4/moon_interface/tests/apitests/scenario/rbac.py +++ b/moonv4/moon_interface/tests/apitests/scenario/rbac.py @@ -15,7 +15,7 @@ subject_data = {"role": {"admin": "", "employee": ""}} object_data = {"id": {"vm0": "", "vm1": ""}} action_data = {"action-type": {"vm-action": "", }} -subject_assignments = {"user0": {"role": "admin"}, "user1": {"role": "employee"}, } +subject_assignments = {"user0": {"role": "employee"}, "user1": {"role": "employee"}, } object_assignments = {"vm0": {"id": "vm0"}, "vm1": {"id": "vm1"}} action_assignments = {"start": {"action-type": "vm-action"}, "stop": {"action-type": "vm-action"}} @@ -25,8 +25,18 @@ meta_rule = { rules = { "rbac": ( - ("admin", "vm0", "vm-action"), - ("admin", "vm1", "vm-action"), + { + "rule": ("admin", "vm0", "vm-action"), + "instructions": ( + {"decision": "grant"} # "grant" to immediately exit, "continue" to wait for the result of next policy + ) + }, + { + "rule": ("admin", "vm1", "vm-action"), + "instructions": ( + {"decision": "grant"} + ) + }, ) } diff --git a/moonv4/moon_interface/tests/apitests/scenario/session.py b/moonv4/moon_interface/tests/apitests/scenario/session.py new file mode 100644 index 00000000..6b7e0f18 --- /dev/null +++ b/moonv4/moon_interface/tests/apitests/scenario/session.py @@ -0,0 +1,55 @@ + +pdp_name = "pdp1" +policy_name = "Session policy example" +model_name = "Session" + +subjects = {"user0": "", "user1": "", } +objects = {"admin": "", "employee": "", } +actions = {"activate": "", "deactivate": ""} + +subject_categories = {"subjectid": "", } +object_categories = {"role": "", } +action_categories = {"session-action": "", } + +subject_data = {"subjectid": {"user0": "", "user1": ""}} +object_data = {"role": {"admin": "", "employee": ""}} +action_data = {"session-action": {"activate": "", "deactivate": ""}} + +subject_assignments = {"user0": {"subjectid": "user0"}, "user1": {"subjectid": "user1"}, } +object_assignments = {"admin": {"role": "admin"}, "employee": {"role": "employee"}} +action_assignments = {"activate": {"session-action": "activate"}, "deactivate": {"session-action": "deactivate"}} + +meta_rule = { + "session": {"id": "", "value": ("subjectid", "role", "session-action")}, +} + +rules = { + "session": ( + { + "rule": ("user0", "admin", "activate"), + "instructions": ( + { + "update": { + "operation": "add", + "target": "rbac:role:admin" # add the role admin to the current user + } + }, + {"chain": [{"security_pipeline": "rbac"}]} # chain with the meta_rule named rbac + ) + }, + { + "rule": ("user1", "employee", "deactivate"), + "instructions": ( + { + "update": { + "operation": "delete", + "target": "rbac:role:employee" # delete the role employee from the current user + } + }, + {"chain": [{"security_pipeline": "rbac"}]} # chain with the meta_rule named rbac + ) + }, + ) +} + + |