From 84fdd3c750f0e4b9deded73bdec9ba61888af894 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Thu, 26 Oct 2023 05:31:32 -0500 Subject: [PATCH] website/docs: RBAC docs (#7191) * draft rbac docs * tweaks * add a permissions topic * tweaks * more changes * draft permissions topic * more content on roles * links * typo * more conceptual info * Optimised images with calibre/image-actions * more content on roles * add more x-ref links * fix links * more content * links * typos * polishing * Update website/docs/user-group-role/access-control/permissions.md Co-authored-by: Jens L. Signed-off-by: Tana M Berry * separwate conceptual vs procedural in permissions * finished groups procedurals * new page * added link * Update website/docs/user-group-role/access-control/permissions.md Co-authored-by: Jens L. Signed-off-by: Tana M Berry * polish * edits from PR review * restructured view section to remove repetition * rest of edits from PR review * polished flows and stages * polish * typo --------- Signed-off-by: Tana M Berry Co-authored-by: Tana Berry Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> Co-authored-by: Jens L. --- website/docs/expressions/_functions.md | 2 +- website/docs/expressions/_user.md | 2 +- website/docs/flow/context/index.md | 6 +- website/docs/policies/expression.mdx | 4 +- .../access-control/flow-page.png | Bin 0 -> 118320 bytes .../user-group-role/access-control/index.mdx | 16 +++ .../access-control/manage_permissions.md | 118 ++++++++++++++++++ .../access-control/permissions.md | 44 +++++++ .../access-control/user-page.png | Bin 0 -> 121630 bytes .../groups/index.mdx} | 3 +- .../user-group-role/groups/manage_groups.md | 45 +++++++ website/docs/user-group-role/roles/index.mdx | 20 +++ .../user-group-role/roles/manage_roles.md | 48 +++++++ .../user/create_invite.png | Bin .../user/index.mdx | 0 .../user/invitations.md | 0 .../user/user_basic_operations.md | 37 +++--- .../user/user_ref.md | 0 website/integrations/services/minio/index.md | 2 +- website/sidebars.js | 43 +++++-- 20 files changed, 355 insertions(+), 35 deletions(-) create mode 100644 website/docs/user-group-role/access-control/flow-page.png create mode 100644 website/docs/user-group-role/access-control/index.mdx create mode 100644 website/docs/user-group-role/access-control/manage_permissions.md create mode 100644 website/docs/user-group-role/access-control/permissions.md create mode 100644 website/docs/user-group-role/access-control/user-page.png rename website/docs/{user-group/group.md => user-group-role/groups/index.mdx} (86%) create mode 100644 website/docs/user-group-role/groups/manage_groups.md create mode 100644 website/docs/user-group-role/roles/index.mdx create mode 100644 website/docs/user-group-role/roles/manage_roles.md rename website/docs/{user-group => user-group-role}/user/create_invite.png (100%) rename website/docs/{user-group => user-group-role}/user/index.mdx (100%) rename website/docs/{user-group => user-group-role}/user/invitations.md (100%) rename website/docs/{user-group => user-group-role}/user/user_basic_operations.md (83%) rename website/docs/{user-group => user-group-role}/user/user_ref.md (100%) diff --git a/website/docs/expressions/_functions.md b/website/docs/expressions/_functions.md index ceddc916c..da3b524e3 100644 --- a/website/docs/expressions/_functions.md +++ b/website/docs/expressions/_functions.md @@ -66,7 +66,7 @@ return ak_is_group_member(request.user, name="test_group") Fetch a user matching `**filters`. -Returns "None" if no user was found, otherwise returns the [User](/docs/user-group/user) object. +Returns "None" if no user was found, otherwise returns the [User](/docs/user-group-role/user) object. Example: diff --git a/website/docs/expressions/_user.md b/website/docs/expressions/_user.md index 250e15400..f38484bae 100644 --- a/website/docs/expressions/_user.md +++ b/website/docs/expressions/_user.md @@ -1,4 +1,4 @@ -- `user`: The current user. This may be `None` if there is no contextual user. See [User](../user-group/user/user_ref.md#object-properties). +- `user`: The current user. This may be `None` if there is no contextual user. See [User](../user-group-role/user/user_ref.md#object-properties). Example: diff --git a/website/docs/flow/context/index.md b/website/docs/flow/context/index.md index e98e4d30d..13f6c5c5b 100644 --- a/website/docs/flow/context/index.md +++ b/website/docs/flow/context/index.md @@ -22,7 +22,7 @@ Keys prefixed with `goauthentik.io` are used internally by authentik and are sub ### Common keys -#### `pending_user` ([User object](../../user-group/user/user_ref.md#object-properties)) +#### `pending_user` ([User object](../../user-group-role/user/user_ref.md#object-properties)) `pending_user` is used by multiple stages. In the context of most flow executions, it represents the data of the user that is executing the flow. This value is not set automatically, it is set via the [Identification stage](../stages/identification/). @@ -110,9 +110,9 @@ Optionally overwrite the deny message shown, has a higher priority than the mess #### User write stage -##### `groups` (List of [Group objects](../../user-group/group.md)) +##### `groups` (List of [Group objects](../../user-group-role/groups/index.mdx)) -See [Group](../../user-group/group.md). If set in the flow context, the `pending_user` will be added to all the groups in this list. +See [Group](../../user-group-role/groups/index.mdx). If set in the flow context, the `pending_user` will be added to all the groups in this list. If set, this must be a list of group objects and not group names. diff --git a/website/docs/policies/expression.mdx b/website/docs/policies/expression.mdx index cf59dccfd..2200cc96f 100644 --- a/website/docs/policies/expression.mdx +++ b/website/docs/policies/expression.mdx @@ -41,7 +41,7 @@ import Objects from "../expressions/_objects.md"; - `request`: A PolicyRequest object, which has the following properties: - - `request.user`: The current user, against which the policy is applied. See [User](../user-group/user/user_ref.md#object-properties) + - `request.user`: The current user, against which the policy is applied. See [User](../user-group-role/user/user_ref.md#object-properties) :::caution When a policy is executed in the context of a flow, this will be set to the user initiaing request, and will only be changed by a `user_login` stage. For that reason, using this value in authentication flow policies may not return the expected user. Use `context['pending_user']` instead; User Identification and other stages update this value during flow execution. @@ -77,7 +77,7 @@ This includes the following: - `context['prompt_data']`: Data which has been saved from a prompt stage or an external source. (Optional) - `context['application']`: The application the user is in the process of authorizing. (Optional) - `context['source']`: The source the user is authenticating/enrolling with. (Optional) -- `context['pending_user']`: The currently pending user, see [User](../user-group/user/user_ref.md#object-properties) +- `context['pending_user']`: The currently pending user, see [User](../user-group-role/user/user_ref.md#object-properties) - `context['is_restored']`: Contains the flow token when the flow plan was restored from a link, for example the user clicked a link to a flow which was sent by an email stage. (Optional) - `context['auth_method']`: Authentication method (this value is set by password stages) (Optional) diff --git a/website/docs/user-group-role/access-control/flow-page.png b/website/docs/user-group-role/access-control/flow-page.png new file mode 100644 index 0000000000000000000000000000000000000000..fcf4e8318b15d45d19e1ba88bcf212cb0a732a19 GIT binary patch literal 118320 zcmeFZXH=7EyEg2M4>|*uVWcQ^6zK#+1e7W&p!5)mgr-ypO?n5#2bDfjLMKQGK?q0* zy^KmgY6L=WN{iG;4G;p~b?eNt_TJyO_WFLlKi*`iD-!N=q>-;N#o{Hp$Z1ErdsjhfqiG?asZnRu6977+Z@3>HE3pw*FdmJJZ(F zoWC)_ZyK~dnjl8NjsA!VXOaBl(jPdN&NG|z8kHNZAxOc5g>GzOj+FNL;zN^yDT>qg&M0qvnk!UgI9>Jr`pItYr zKYm997YTMk1SkE888xVd3Zkv)I&`PL;_+x@JuQw+j(#<=)<9LEG5z@VKYo4!sRk>~ zuMTDG&yCo|yCS9W6MGa4CYZ53ymt1-SHExKC1%vA{BUHzJ=ewl0$pBNSl6EyZzuRo zhYTzK{QYbHSW4_uBLi_XnJ;wr%UsU0Go8jFiYsqFB(O*|UJ3a6`bC1Nb%?B4ou~an zwkmM(m%CD=^s|FEI_x@=L_6kFtgY_Lk>pw!tM0;QRd#de|N4IH{}|5kq8#+Fdl-G( z?#ug#j;W>~FRB-%H!EUh)T5o()Q5hO=kd*r2`^He>5ohQ&zjt4MhRzm8&=qLB!p6r z@HJCfamqU*QFMi^Pq!0|i%sgRkN>r^I?jTqQDJNibY%HWrCEeAwmarJ5?LaM{u~wp ze<_}Uj`^RR`Hhp@yw~H-(d_L$C%rP&q?j3EPC2_o-A1`(s>}?jidF^j4cKj-w`KfE7 z&a1eT)-6N2{DRl_{=y+ik=j^VUu_+-ZTxVqrcq^YF43+F4eK~$&`*+OcHW)jzpQ%j z<*b*o?eV%C4w`>&=8X>f6if7}3s>_WH-C6>mc|#ZwjUP+wl=YW+N^j%&gH)6?w1#w zp+|Fx`t{iVeoZi(W$4~~U3Ea)1;;Hj8d%gG!rI1sS0c3hY3*0M7P?F8s-;h(nh-b* zvoBi%`ubSCtn`xm<+;w<&hWPDYqhhU7}`xq9MLi7AXut-*M@rWs|_QdU460PfF{k3 zTZYo+j}QS_*H}2Rb`hHqIKfkCtJDU3NK1t**XB*h%o4CiPg=J6D(`o=zPL$f41H@ zY|4Wf^MDOrxp-VnXrm>}3{w}@UTN~( zYm2#%xH4X&uZF+F)|c%+6KU7_lC??2G@1jpaTqQc)-H;JV#R-qn;FH<6ZrMD@{vlE zL#0EHn2S3&U|NgZplvZ}MU)Hg|y&S}A8gn&KR(*jK zx>KoUZXjO&Ih-Y-tmUvij}!)6qo|#a=JQ8<($L3nWK3#`?`c~$S*q06HNVUsF*;QYnhHmBYvv;}{wC_wG zF{abT1NY`r8me=AffW^MiHjRuwfp#|-S*NTZ_pvNaZ_)}qh+gK``Jb%Hs{1~?Xc

H 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 literal 0 HcmV?d00001 diff --git a/website/docs/user-group-role/access-control/index.mdx b/website/docs/user-group-role/access-control/index.mdx new file mode 100644 index 000000000..720a49424 --- /dev/null +++ b/website/docs/user-group-role/access-control/index.mdx @@ -0,0 +1,16 @@ +--- +title: About access control +--- + +import DocCardList from "@theme/DocCardList"; +import { useCurrentSidebarCategory } from "@docusaurus/theme-common"; + +To comply with important regulations such as PCI-DSS, HIPAA, SOC 2, and GDPR, it's necessary to have the ability to control which users have access to specific areas of the system, what [permissions](./permissions.md) they have globally and on certain objects, and a way to monitor [events](../../events) related to user activity. + +In authentik, we provide role-based access control (RBAC), an industry standard for managing access control. By carefully designing roles with appropriate permissions, and then assigning those roles to groups, RBAC provides a fine-tuned approach to controlling user access. + +RBAC is a way of ensuring the well-known [principal of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege) whereby "every module (such as a process, a user, or a program, depending on the subject) must be able to access only the information and resources that are necessary for its legitimate purpose." + +To learn more about access control with authentik, refer to these topics: + + diff --git a/website/docs/user-group-role/access-control/manage_permissions.md b/website/docs/user-group-role/access-control/manage_permissions.md new file mode 100644 index 000000000..c4a924c38 --- /dev/null +++ b/website/docs/user-group-role/access-control/manage_permissions.md @@ -0,0 +1,118 @@ +--- +title: "Manage permissions" +description: "Learn how to use global and object permissions in authentik." +--- + +Refer to the following topics for instructions to view and manage permissions. + +## View permissions + +You can view all permissions that are assigned to a user, group, role, flow, or stage. + +### View user, group, and role permissions + +To view _object_ permissions for a specific user, role, or group: + +1. Go to the Admin interface and navigate to **Directory**. +2. Select either **Users**, **Groups**, or **Roles** +3. Select a specific user/group/role by clicking on the name (this opens the details page). +4. Click the **Assigned Permissions** tab at the top of the page (to the right of the **Permissions** tab). +5. Scroll down to see both the global and object-level permissions. + +:::info +Note that groups do not have global permissions. +::: + +### View flow permissions + +1. Go to the Admin interface and navigate to **Flows and Stages -> Flows**. +2. Click the name of the flow (this opens the details page). +3. Click the **Permissions** tab at the top of the page. +4. View the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. + +### View stage permissions + +1. Go to the Admin interface and navigate to **Flows and Stages -> Stagess**. +2. On the row for the specific stage whose permissions you want to view, click the lock icon. +3. On the **Update Permissions** tab, you can view the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. + +## Manage permissions + +You can assign or remove permissions to a user, role, group, flow, or stage. + +### Assign, modify, or remove permissions for a user + +To assign or remove _object_ permissions for a specific user: + +1. Go to the Admin interface and navigate to **Directory -> Users**. +2. Select a specific user by clicking on the user's name. +3. Click the **Permissions** tab at the top of the page. +4. To assign or remove permissions that another _user_ has on this specific user: + 1. Click the **User Object Permissions** tab, click **Assign to new user**. + 2. In the **User** drop-down, select the user object. + 3. Use the toggles to set which permissions on that selected user object you want to grant to (or remove from) the specific user. + 4. Click **Assign** to save your settings and close the modal. +5. To assign or remove permissions that another _role_ has on this specific user: + Click the **Role Object Permissions** tab, click **Assign to new role**. 2. In the **User** drop-down, select the user object. 3. Use the toggles to set which permissions you want to grant to (or remove from) the selected role. 4. Click **Assign** to save your settings and close the modal. + +To assign or remove _global_ permissions for a user: + +1. Go to the Admin interface and navigate to **Directory -> Users**. +2. Select a specific user the clicking on the user's name. +3. Click the **Assigned Permissions** tab at the top of the page (to the right of the **Permissions** tab). +4. In the **Assigned Global Permissions** area, click **Assign Permission**. +5. In the **Assign permissions to user** modal, click the plus sign (**+**) and then click the checkbox beside each permission that you want to assign to the user. To remove permissions, deselect the checkbox. +6. Click **Add**, and then click **Assign** to save your changes and close the modal. + +### Assign or remove permissions on a specific group + +:::info +Note that groups themselves do not have permissions. Rather, users and roles have permissions assigned that allow them to create, modify, delete, etc., a group. +Also there are no global permissions for groups. +::: + +To assign or remove _object_ permissions on a specific group by users and roles: + +1. Go to the Admin interface and navigate to **Directory -> Groups**. +2. Select a specific group by clicking the the group's name. +3. Click the **Permissions** tab at the top of the page. + To assign or remove permissions that another _user_ has on this specific group: + 1. Click the **User Object Permissions** tab, click **Assign to new user**. + 2. In the **User** drop-down, select the user object. + 3. Use the toggles to set which permissions on that selected group you want to grant to (or remove from) the specific user. + 4. Click **Assign** to save your settings and close the modal. +4. To assign or remove permissions that another _role_ has on this specific group: + Click the **Role Object Permissions** tab, click **Assign to new role**. 2. In the **Role** drop-down, select the role. 3. Use the toggles to set which permissions you want to grant to (or remove from ) the selected role. 4. Click **Assign** to save your settings and close the modal. + +### Assign or remove permissions for a specific role + +To assign or remove _object_ permissions for a specific role: + +1. Go to the Admin interface and navigate to **Directory -> Roles**. +2. Select a specific role the clicking on the role's name. +3. Click the **Permissions** tab at the top of the page. + To assign or remove permissions that another _user_ has on this specific role: 1. Click the **User Object Permissions** tab, click **Assign to new user**. 2. In the **User** drop-down, select the user object. 3. Use the toggles to set which permissions on that role you want to grant to (or remove from) the selected user. 4. Click **Assign** to save your settings and close the modal. +4. To assign or remove permissions that another _role_ has on this specific group: + Click the **Role Object Permissions** tab, click **Assign to new role**. 2. In the **Role** drop-down, select the role. 3. Use the toggles to set which permissions you want to grant to (or remove from) the selected role. 4. Click **Assign** to save your settings and close the modal. + +To assign or remove _global_ permissions for a role: + +1. Go to the Admin interface and navigate to **Directory -> Roles**. +2. Select a specific role by clicking on the role's name. +3. The **Overview** tab at the top of the page displays all assigned global permissions for the role. +4. In the **Assigned Global Permissions** area, click **Assign Permission**. +5. In the **Assign permissions to role** modal, click the plus sign (**+**) and then click the checkbox beside each permission that you want to assign to the role. To remove permissions, deselect the checkbox. +6. Click **Assign** to save your changes and close the modal. + +### Assign or remove flow permissions + +1. Go to the Admin interface and navigate to **Flows and Stages -> Flows**. +2. Click the name of the flow (this opens the details page). +3. Click the **Permissions** tab at the top of the page. +4. Add or remove permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. + +### Assign or remove stage permissions + +1. Go to the Admin interface and navigate to **Flows and Stages -> Stagess**. +2. On the row for the specific stage that you want to manage permissions, click the lock icon. +3. On the **Update Permissions** tab, you can add or remove the assigned permissions using the **User Object Permissions** and the **Role Object Permissions** tabs. diff --git a/website/docs/user-group-role/access-control/permissions.md b/website/docs/user-group-role/access-control/permissions.md new file mode 100644 index 000000000..57c0f7ae8 --- /dev/null +++ b/website/docs/user-group-role/access-control/permissions.md @@ -0,0 +1,44 @@ +--- +title: "About permissions" +description: "Learn about global and object permissions in authentik." +--- + +Permissions are the central components in all access control systems, the lowest-level components, the controlling pieces of access data. Permissions are assigned to (or removed from!) to define exactly WHO can do WHAT to WHICH part of the overall software system. + +:::info +Note that global and object permissions only apply to objects within authentik, and not to who can access certain applications (which are access-controlled using [policies](../../policies/index.md). +::: + +## Fundamentals of authentik permissions + +There are two main types of permissions in authentik: + +- [**Global permissions**](#global-permissions) +- [**Object permissions**](#object-permissions) + +### Global permissions + +Global permissions define who can do what on a global level across the entire system. Some examples in authentik are the ability to add new [flows](../../flow/index.md) or to create a URL for users to recover their login credentials. + +You can assign _global permissions_ to individual [users](../user/index.mdx) or to [roles](../roles/index.mdx). The most common and best practice is to assign permissions to roles. + +### Object permissions + +Object permissions have two categories: + +- **_User_ object permissions**: defines WHO (which user) can change the **_object_** +- **_Role_ object permissions**: defines which ROLE can change the **_object_** + +Object permissions are assigned, as the name indicates, to an object (users, [groups](../groups/index.mdx), roles, flows, and stages), and the assigned permissions state exactly what a user or role can do TO the object (i.e. what permissions does the user or role have on that object). + +When working with object permissions, it is important to understand that when you are viewing the page for an object the permissions table shows which users or roles have permissions ON that object. Those permissions describe what those users or roles can do TO the object detailed on the page. + +For example, the UI below shows a user page for the user named Peter. + +![](./user-page.png) + +You can see in the **User Object Permissions** table that another user, roberto, has permissions on Peter (that is, on the user object Peter). + +Looking at another example, with a flow object called `default-recovery-flow` you can see that the Admin user (akadmin) has all object permissions on the flow, but roberto only has a few permissions on that flow. + +![](./flow-page.png) diff --git a/website/docs/user-group-role/access-control/user-page.png b/website/docs/user-group-role/access-control/user-page.png new file mode 100644 index 0000000000000000000000000000000000000000..904062b974bd1ea575ebd66a95eaeb201ec96b6d GIT binary patch literal 121630 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

-Wy>*SCtWU)==wzbhQj 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∾8SVU~&lkv#Si3TRH1lcC;$Q9Bj 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 literal 0 HcmV?d00001 diff --git a/website/docs/user-group/group.md b/website/docs/user-group-role/groups/index.mdx similarity index 86% rename from website/docs/user-group/group.md rename to website/docs/user-group-role/groups/index.mdx index a251ce18c..ea934547b 100644 --- a/website/docs/user-group/group.md +++ b/website/docs/user-group-role/groups/index.mdx @@ -1,5 +1,6 @@ --- -title: Group +title: About groups +description: Learn about groups in authentik --- ## Hierarchy diff --git a/website/docs/user-group-role/groups/manage_groups.md b/website/docs/user-group-role/groups/manage_groups.md new file mode 100644 index 000000000..96c468360 --- /dev/null +++ b/website/docs/user-group-role/groups/manage_groups.md @@ -0,0 +1,45 @@ +--- +title: Manage groups +description: "Learn how to work with groups in authentik." +--- + +A group is a collection of users. Refer to the following sections to learn how to create and manage groups, assign users and roles to groups, and how [permissions](../access-control/manage_permissions.md) work on a group level. + +## Create a group + +To create a new group, follow these steps: + +1. In the Admin interface, navigate to **Directory > Groups**. +2. Click **Create** at the top of the Groups page. +3. In the Create modal, define the following: + - name of the group + - whether or not users in that group will all be superusers (means anyone in that group has all permissions on everything) + - the parent group + - any custom attributes +4. Click **Create**. + +## Modify a group + +To edit the group's name, parent group, whether or not the group is for superusers, associated roles, and any custom attributes, click the Edit icon beside the role's name. Make the changes, and then click **Update**. + +To [add or remove users](../user/user_basic_operations.md#add-a-user-to-a-group) from the group, or to manage permissions assigned to the group, click on the name of the group to go to the group's detail page. + +For more information about permissions, refer to ["Assign or remove permissions for a specific group"](../access-control/manage_permissions.md#assign-or-remove-permissions-for-a-specific-group). + +## Delete a group + +To delete a group, follow these steps: + +1. In the Admin interface, navigate to **Directory > Groups**. +2. Select the checkbox beside the name of the group that you want to delete. +3. Click **Delete**. + +## Assign, modify, or remove permissions for a group + +You can grant a group specific global or object-level permissions. Any user who is a member of a group inherits all of the group's permissions. + +For more information, review ["Permissions"](../access-control/permissions.md). + +## Assign a role to a group + +You can assign a role to a group, and then all users in the group inherit the permissions assigned to that role. For instructions and more information, see ["Assign a role to a group"](../roles/manage_roles.md#assign-a-role-to-a-group). diff --git a/website/docs/user-group-role/roles/index.mdx b/website/docs/user-group-role/roles/index.mdx new file mode 100644 index 000000000..19d179780 --- /dev/null +++ b/website/docs/user-group-role/roles/index.mdx @@ -0,0 +1,20 @@ +--- +title: About roles +--- + +import DocCardList from "@theme/DocCardList"; +import { useCurrentSidebarCategory } from "@docusaurus/theme-common"; + +Roles are a way to simplify the assignment of permissions. Roles are also the backbone of role-based access control (RBAC), an industry standard for managing [access control](../access-control). In authentik, RBAC is how you manage access to system components and specific objects such as flows, stages, users, etc. + +Think of roles as a collection of permissions. A role, along with its "bucket" of assigned permissions, can then be assigned to a group, which means that every user who is a part of that group will inherit all of the permissions in that role's "bucket". + +For example, let's take a look at the following scenario: + +> You need to add 5 new users, all new hires, to authentik, your identity management system. These users will be the first team members on the brand new Security team, so they will need some high-level permissions, with object permissions to create and remove other users, revoke permissions, and send recovery emails. They will also need [global permissions](../access-control/permissions#fundamentals-of-authentik-permissions) to control access to flows and stages. + +The easiest workflow for setting up these new users involves [creating a role](./manage_roles.md#create-a-role) specifically for their type of work, and then [assigning that role to a group](./manage_roles.md#assign-a-role-to-a-group) to which all of the users belong. + +To learn more about working with roles in authentik, refer to the following topics: + + diff --git a/website/docs/user-group-role/roles/manage_roles.md b/website/docs/user-group-role/roles/manage_roles.md new file mode 100644 index 000000000..452fbb648 --- /dev/null +++ b/website/docs/user-group-role/roles/manage_roles.md @@ -0,0 +1,48 @@ +--- +title: "Manage roles" +description: "Learn how to work with roles and permissions in authentik." +--- + +Roles are a collection of permissions, which can then be assigned, en masse, to a group. Using roles is a way to quickly grant permissions; by adding a user to the group with the appropriate assigned roles, any user in that group then inherits all of those permissions that are assigned to the role. + +:::info +In authentik, we assign roles to groups, not to individual users. +::: + +## Create a role + +To create a new role, follow these steps: + +1. In the Admin interface, navigate to **Directory > Roles**. +2. Click **Create**, enter the name of the role, and then click **Create** in the modal. +3. Next, [assign permissions to the role](../access-control/permissions.md#assign-or-remove-permissions-for-a-specific-role). + +## Modify a role + +To modify a role, follow these steps: + +- To edit the name of the role, click the Edit icon beside the role's name. + +- To modify the permissions that are assigned to the role click on the role's name to go to the role's detail page. There you can add, modify, or remove permissions. For more information, refer to ["Assign or remove permissions for a specific role"](../access-control/permissions.md#assign-or-remove-permissions-for-a-specific-role). + +## Delete a role + +To delete a role, follow these steps: + +1. In the Admin interface, navigate to **Directory > Roles**. +2. Select the checkbox beside the name of the role that you want to delete. +3. Click **Delete**. + +## Assign a role to a group + +In authentik, roles are assigned to [groups](../groups/index.mdx), not to individual users. + +1. To assign the role to a group, navigate to **Directory -> Groups**. +2. Click the name of the group to which you want to add a role. +3. On the group's detail page, on the Overview tab, click **Edit** in the **Group Info** area. +4. On the **Update Group** modal, in the **Roles** field, scroll through the list of existent roles, and click to select the one you want to add to the group. (You can select multiple roles at once by holding the Control and Command keys while selecting the roles.) +5. Click **Update** to add the role(s) and close the modal. + +:::info +To remove a role from a group, hold the Command key and click the name of the role that you want to remove from the group. This desepcts the role. Then click **Update**. +::: diff --git a/website/docs/user-group/user/create_invite.png b/website/docs/user-group-role/user/create_invite.png similarity index 100% rename from website/docs/user-group/user/create_invite.png rename to website/docs/user-group-role/user/create_invite.png diff --git a/website/docs/user-group/user/index.mdx b/website/docs/user-group-role/user/index.mdx similarity index 100% rename from website/docs/user-group/user/index.mdx rename to website/docs/user-group-role/user/index.mdx diff --git a/website/docs/user-group/user/invitations.md b/website/docs/user-group-role/user/invitations.md similarity index 100% rename from website/docs/user-group/user/invitations.md rename to website/docs/user-group-role/user/invitations.md diff --git a/website/docs/user-group/user/user_basic_operations.md b/website/docs/user-group-role/user/user_basic_operations.md similarity index 83% rename from website/docs/user-group/user/user_basic_operations.md rename to website/docs/user-group-role/user/user_basic_operations.md index 73a834252..3955b5304 100644 --- a/website/docs/user-group/user/user_basic_operations.md +++ b/website/docs/user-group-role/user/user_basic_operations.md @@ -9,11 +9,8 @@ The following topics are for the basic management of users: how to create, modif > If you want to automate user creation, you can do that either by [invitations](./invitations.md), [`user_write` stage](../../flow/stages/user_write), or [using the API](/developer-docs/api/browser). 1. In the Admin interface of your authentik instance, select **Directory > Users** in the left side menu. - 2. Select the folder where you want to create a user. - 3. Click **Create** (for a default user). - 4. Fill in the required fields: - **Username**: This value must be unique across your user folders. @@ -22,8 +19,8 @@ The following topics are for the basic management of users: how to create, modif 5. Fill the **_optional_** fields if needed: - **Name**: The display name of the user. -- **Email**: The email address of the user. That will be used if there is a [notification rule](../../events/notifications) triggered or for [email stages](../../flow/stages/email). -- **Is active**: Define is the newly created user account is active. Selected by default. +- **Email**: The email address of the user. Email addresses are used in [email stages](../../flow/stages/email) and to receive [notifications](../../events/notifications), if configured. +- **Is active**: Define if the newly created user account is active. Selected by default. - **Attributes**: Custom attributes definition for the user, in YAML or JSON format. These attributes can be used to enforce additional prompts on authentication stages or define conditions to enforce specific policies if the current implementation does not fit your use case. The value is an empty dictionary by default. 6. Click **Create** @@ -43,7 +40,7 @@ To view details about a specific user: 2. To see further details, click any of the other tabs: - **Session** shows the active sessions established by the user. If there is any need, you can clean up the connected devices for a user by selecting the device(s) and then clicking **Delete**. This forces the user to authenticate again on the deleted devices. -- **Groups** allows you to manage the group membership of the user. You can find more details on [groups](../group). +- **Groups** allows you to manage the group membership of the user. You can find more details on [groups](../groups/index.mdx). - **User events** displays all the events generated by the user during a session, such as login, logout, application authorisation, password reset, user info update, etc. - **Explicit consent** lists all the permissions the user has given explicitly to an application. Entries will only appear if the user is validating an [explicit consent flow in an OAuth2 provider](../../providers/oauth2/). If you want to delete the explicit consent (because the application is requiring new permissions, or the user has explicitly asked to reset his consent on third-party apps), select the applications and click **Delete**. The user will be asked to again give explicit consent to share information with the application. - **OAuth Refresh Tokens** lists all the OAuth tokens currently distributed. You can remove the tokens by selecting the applications and then clicking **Delete**. @@ -53,32 +50,38 @@ To view details about a specific user: After the creation of the user, you can edit any parameter defined during the creation. -To modify a user object, go to **Directory > Users**, and click the edit icon beside the name. +To modify a user object, go to **Directory > Users**, and click the edit icon beside the name. You can also go into [user details](#view-user-details), and click **Edit**. -You can also go into [user details](#view-user-details), and click **Edit**. +### Assign, modify, or remove permissions for a user -## User recovery +You can grant a user specific global or object-level permissions. Alternatively, you can add a user to a group that has the appropriate permissions, and the user inherits all of the group's permissions. + +For more information, review ["Permissions"](../access-control/permissions.md). + +## Add a user to a group + +1. To add a user to a group, navigate to **Directory > Users** to display all users. +2. Click the name of the user to display the full user details page. +3. Click the **Groups** tab, and then click either **Add to existing group** or **Add to new group**. + +## User credentials recovery If a user has lost their credentials, there are several options. ### Email them a recovery link 1. In the Admin interface, navigate to **Directory > Users** to display all users. - -2. Either click the name of the user to display the full User details page, or click the chevron (the › symbol) beside their name to expand the toptions. - +2. Either click the name of the user to display the full User details page, or click the chevron (the › symbol) beside their name to expand the options. 3. To generate a recovery link, which you can then copy and paste into an email, click **View recovery link**. - A pop-up will appear on your browser with the link for you to copy and to send to the user. +A pop-up will appear on your browser with the link for you to copy and to send to the user. ### Automate email to a user You can use our automated email to send a link with the URL for the user to reset their password. This option will only work if you have properly [configured a SMTP server during the installation](../../installation/docker-compose#email-configuration-optional-but-recommended) and set an email address for the user. 1. In the Admin interface, navigate to **Directory > Users** to display all users. - 2. Either click the name of the user to display the full User details page, or click the chevron beside their name to expand the toptions. - 3. To send the automated email to the user, click **Email recovery link**. If the user does not receive the email, check if the mail server parameters [are properly configured](../../troubleshooting/emails). @@ -88,9 +91,7 @@ If the user does not receive the email, check if the mail server parameters [are As an Admin, you can simply reset the password for the user. 1. In the Admin interface, navigate to **Directory > Users** to display all users. - 2. Either click the name of the user to display the full User details page, or click the chevron beside their name to expand the toptions. - 3. To reset the user's password, click **Reset password**, and then define the new value. ## Deactivate or Delete user @@ -98,7 +99,6 @@ As an Admin, you can simply reset the password for the user. #### To deactivate a user: 1. Go into the user list or detail, and click **Deactivate**. - 2. Review the changes and click **Update**. The active sessions are revoked and the authentication of the user blocked. You can reactivate the account by following the same procedure. @@ -111,7 +111,6 @@ You may instead deactivate the account to preserve identity data. ::: 1. Go into the user list and select one (or multiple users) to delete and click **Delete** on the top-right of the page. - 2. Review the changes and click **Delete**. The user list refreshes and no longer displays the removed users. diff --git a/website/docs/user-group/user/user_ref.md b/website/docs/user-group-role/user/user_ref.md similarity index 100% rename from website/docs/user-group/user/user_ref.md rename to website/docs/user-group-role/user/user_ref.md diff --git a/website/integrations/services/minio/index.md b/website/integrations/services/minio/index.md index 11c664186..f2ea99217 100644 --- a/website/integrations/services/minio/index.md +++ b/website/integrations/services/minio/index.md @@ -43,7 +43,7 @@ elif ak_is_group_member(request.user, name="Minio users"): return None ``` -Note that you can assign multiple policies to a user by returning a list, and returning `None` will map no policies to the user, resulting in no access to the MinIO instance. For more information on writing expressions, see [Expressions](../../../docs/property-mappings/expression) and [User](../../../docs/user-group/user#object-attributes) docs. +Note that you can assign multiple policies to a user by returning a list, and returning `None` will map no policies to the user, resulting in no access to the MinIO instance. For more information on writing expressions, see [Expressions](../../../docs/property-mappings/expression) and [User](../../../docs/user-group-role/user/user_ref#object-properties) docs. ### Creating application and provider diff --git a/website/sidebars.js b/website/sidebars.js index 902194492..ac76683fd 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -13,7 +13,7 @@ const docsSidebar = { { type: "category", label: "Installation", - collapsed: false, + collapsed: true, link: { type: "doc", id: "installation/index", @@ -259,22 +259,51 @@ const docsSidebar = { }, { type: "category", - label: "Users & Groups", + label: "Users, Groups, & Roles", items: [ { type: "category", label: "Users", link: { type: "doc", - id: "user-group/user/index", + id: "user-group-role/user/index", }, items: [ - "user-group/user/user_basic_operations", - "user-group/user/user_ref", - "user-group/user/invitations", + "user-group-role/user/user_basic_operations", + "user-group-role/user/user_ref", + "user-group-role/user/invitations", + ], + }, + { + type: "category", + label: "Groups", + link: { + type: "doc", + id: "user-group-role/groups/index", + }, + items: ["user-group-role/groups/manage_groups"], + }, + { + type: "category", + label: "Roles", + link: { + type: "doc", + id: "user-group-role/roles/index", + }, + items: ["user-group-role/roles/manage_roles"], + }, + { + type: "category", + label: "Access control", + link: { + type: "doc", + id: "user-group-role/access-control/index", + }, + items: [ + "user-group-role/access-control/permissions", + "user-group-role/access-control/manage_permissions", ], }, - "user-group/group", ], }, {