Skip to content

Commit 40032c6

Browse files
author
GitHub Actions
committed
Update Orchestrator plugin permissions
1 parent c11d3a4 commit 40032c6

File tree

2 files changed

+28
-25
lines changed

2 files changed

+28
-25
lines changed

modules/orchestrator/proc-managing-orchestrator-plugin-permissions-using-rbac-policies.adoc

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,48 +3,52 @@
33
[id="proc-managing-orchestrator-plugin-permissions-using-rbac-policies_{context}"]
44
= Managing Orchestrator plugin permissions using RBAC policies
55

6-
You can configure Role-Based Access Control (RBAC) policies so that users can view workflow details without the permission to run those workflows. This configuration limits user interaction to explicitly authorized workflows.
6+
You can configure Role-Based Access Control (RBAC) policies so that users can view workflow details without the permission to run those workflows. This configuration restricts user interaction to authorized workflows.
77

88
.Prerequisites
9-
• You have identified the specific [`workflowId`] for each workflow you want to restrict.
10-
• You have enabled the RBAC plugin and configured the `policies-csv-file` path in your `{my-app-config-file}`.
9+
. You have identified the [`workflowId`] for each workflow you want to restrict.
10+
. You have enabled the RBAC plugin.
11+
. You have configured the `policies-csv-file` path in your `{my-app-config-file}`.
1112

1213
.Procedure
13-
. Identify the `workflowId` from your workflow definition file as shown in the following example:
14+
. Identify the `workflowId` from your workflow definition file:
1415
+
1516
[source,yaml]
1617
----
1718
id: greeting
1819
version: '1.0'
1920
----
20-
. Create or update your RBAC policy CSV file to define permissions. Use the format `p, role, permission, action, allow`.
21+
. In your RBAC policy CSV file, define the permissions using the `p, role, permission, action, allow` format.
2122
+
2223
[NOTE]
2324
====
24-
You can grant access using generic permissions, (for example, `orchestrator.workflow`) or specific permissions targeting a `workflowId`, (for example, `orchestrator.workflow.greeting`). Generic permissions take precedence; you cannot grant generic access and then selectively deny a specific ID.
25+
Generic permissions (for example, `orchestrator.workflow`) take precedence over specific permissions targeting a `workflowId`, (for example, `orchestrator.workflow.greeting`). You cannot grant generic access and then selectively deny a specific ID.
2526
====
2627

2728
. Add the following example policies to your CSV file to establish basic user and administrator roles:
2829
+
29-
[source,yaml]
30+
[source,csv]
3031
----
3132
# Minimal user role - can only view and run specific workflows
3233
p, role:default/workflowUser, orchestrator.workflow.greeting, read, allow
3334
p, role:default/workflowUser, orchestrator.workflow.use.greeting, update, allow
35+
3436
# Support role - can view all workflows and instances, but not execute
3537
p, role:default/workflowSupport, orchestrator.workflow, read, allow
3638
p, role:default/workflowSupport, orchestrator.instanceAdminView, read, allow
39+
3740
# Full admin role - complete access to all Orchestrator functions
3841
p, role:default/workflowAdmin, orchestrator.workflow, read, allow
3942
p, role:default/workflowAdmin, orchestrator.workflow.use, update, allow
4043
p, role:default/workflowAdmin, orchestrator.workflowAdminView, read, allow
4144
p, role:default/workflowAdmin, orchestrator.instanceAdminView, read, allow
45+
4246
# Assign users to the roles
4347
g, user:default/example_user, role:default/workflowUser
4448
----
45-
. Enable permissions in your `{my-app-config-file}` file by adding the `orchestrator` plugin to the `rbac` section and set `policyFileReload` to true.
49+
. In your {product-very-short} `{my-app-config-file}` file, enable permissions by adding the `orchestrator` plugin to the `rbac` section and setting `policyFileReload` to true.
4650
+
47-
[source,subs="+attributes,+quotes"]
51+
[source,yaml,subs="+attributes,+quotes"]
4852
----
4953
permission:
5054
enabled: true
@@ -61,13 +65,13 @@ permission:
6165

6266
.Verification
6367
. Log in as a user assigned to the `workflowUser` role.
64-
. Navigate to the Orchestrator plugin and verify that you can see the workflow in the list.
68+
. Navigate to the Orchestrator plugin and verify that the workflow appears in the list.
6569

6670
[IMPORTANT]
6771
====
68-
You can view dynamic permissions containing a `workflowId` in the RBAC UI, but you cannot modify them in the interface. Use the policy CSV file or the RBAC API to manage these specific workflow permissions.
72+
You can view dynamic permissions containing a `workflowId` in the RBAC UI, but you cannot modify them in the interface. You must use the policy CSV file or the RBAC API to manage these specific workflow permissions.
6973
====
7074

7175
[role="_additional-resources"]
7276
.Additional resources
73-
* For more information on `casbin` rules, see link:https://www.casbin.org/docs/rbac[RBAC documentation].
77+
* link:https://www.casbin.org/docs/rbac[RBAC documentation].

modules/orchestrator/ref-orchestrator-plugin-permissions.adoc

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
= Orchestrator plugin permissions
55

66
The Orchestrator plugin uses the {product} permission mechanism and the Role-Based Access Control (RBAC) plugin to restrict access to backend endpoints.
7-
Orchestrator supports decoupling visibility (read) from running (update) using specific workflow IDs instead of generic permissions as shown in the following table:
7+
Orchestrator supports decoupling visibility (read) from running (update) using specific workflow IDs instead of generic permissions.
88

99
[cols="20%,15%,15,50%", frame="all", options="header"]
1010
|===
@@ -13,50 +13,49 @@ Orchestrator supports decoupling visibility (read) from running (update) using s
1313
|`orchestrator.workflow`
1414
|named resource
1515
|read
16-
|List and read _all_ workflow definitions
16+
|Lists and reads all workflow definitions.
1717

18-
List and read their instances
18+
Lists and reads their instances
1919

2020
|`orchestrator.workflow.[workflowId]`
2121
|named resource
2222
|read
23-
|List and read a _single_ workflow definition
23+
|Lists and reads a specific workflow definition.
2424

25-
List and read instances created for this particular workflow.
25+
Lists and reads instances created for this particular workflow.
2626

2727
|`orchestrator.workflow.use`
2828
|named resource
2929
|update
30-
|Run or abort _any_ workflow
30+
|Runs or aborts any workflow.
3131

3232
|`orchestrator.workflow.use.[workflowId]`
3333
|named resource
3434
|update
35-
|Run or abort a _specific_ workflow
35+
|Runs or aborts a specific workflow.
3636

3737
|`orchestrator.workflowAdminView`
3838
|named resource
3939
|read
40-
|View instance variables and workflow definition editor
40+
|Views instance variables and the workflow definition editor.
4141

4242
|`orchestrator.instanceAdminView`
4343
|named resource
4444
|read
45-
|View _all_ workflow instances, including those created by other users.
45+
|Views all workflow instances, including those created by other users.
4646
|===
4747

4848
[WARNING]
4949
====
50-
Avoid generic permissions for specific control. The system grants access if either a generic permission or a specific one provides it. Granting generic permissions overrides specific denial policies within the same action type as shown:
50+
Generic permissions override specific denial policies within the same action type. To maintain granular control, avoid granting generic permissions if you intend to restrict specific workflows.
5151
5252
* Granting `orchestrator.workflow` (read) prevents you from denying access to `orchestrator.workflow.[workflowId]` (read).
5353
* Granting `orchestrator.workflow.use` (update) prevents you from denying access to `orchestrator.workflow.use.[workflowId]` (update).
5454
====
5555

56-
The [`workflowId`] must match the unique identifier in your workflow definition file. For example,
57-
in the workflow definition below, the identifier is `greeting`:
56+
The [`workflowId`] must match the unique identifier in your workflow definition file. For example, in the workflow definition below, the identifier is `greeting`:
5857

59-
[source,subs="+attributes,+quotes"]
58+
[source,yaml,subs="+attributes,+quotes"]
6059
----
6160
id: greeting
6261
version: '1.0'

0 commit comments

Comments
 (0)