|
| 1 | +# Enhanced Access Control |
| 2 | + |
| 3 | +:::info |
| 4 | + |
| 5 | +The Enhanced Access Control feature is part of the [**Compliance+ Add-On**](../compliance-plus-add-on/). |
| 6 | + |
| 7 | +::: |
| 8 | + |
| 9 | +The Enhanced Access Control feature gives you fine-grained access control over what each of your team members can view or modify within your organization's Friendly Captcha dashboard. This allows you to implement the principle of least-privilege by granting team members only the minimum permissions they need to perform their duties. You can create roles tailored to your organization's structure, such as view-only auditors, billing administrators, or developers with access to only specific *Applications*. This can help you to satisfy security best practices and enterprise compliance requirements. |
| 10 | + |
| 11 | +For many organizations, tightly controlling access and keeping an audit log of changes are critical components of cybersecurity and compliance. Enhanced Access Control combines well with the [Audit Logs](./audit-logs) feature to help you satisfy these requirements. |
| 12 | + |
| 13 | +Additionally, if you are using our [Single Sign-On (SSO)](./single-sign-on) feature to leverage your organization's existing identity provider for authentication, you can use Enhanced Access Control to create a *Default Role* with minimal (or even zero) permissions so that any team member logging in for the first time using SSO won't have more access than you intended. |
| 14 | + |
| 15 | +## Features |
| 16 | + |
| 17 | +### App Groups |
| 18 | + |
| 19 | +If you have many *Applications* configured in the Friendly Captcha Dashboard, you may want some team members to only have access to a specific set of applications. To make this easier, you can create an *App Group* with one or more *Applications*, and then create a *Custom Role* that has view or edit permissions for this *App Group*. |
| 20 | + |
| 21 | +### Custom Roles |
| 22 | + |
| 23 | +There are three default roles: |
| 24 | + |
| 25 | +- *Member*: This role can manage *Applications*, *API Keys*, and *Widget Themes*. |
| 26 | +- *Admin*: This role is like *Member*, but can also send invites to new users. |
| 27 | +- *Owner*: This role has maximum access, including deleting *Members* or changing their role, configuring [Single Sign-On](./single-sign-on), and viewing [Audit Logs](./audit-logs). |
| 28 | + |
| 29 | +If you have many team members that have access to your organization's Friendly Captcha Dashboard, you may want to have more fine-grained access control. Custom Roles lets you create new roles that have exactly the permissions you want, such as read-only access, or edit access to only one specific *App Group*. |
| 30 | + |
| 31 | +## Enabling Enhanced Access Control |
| 32 | + |
| 33 | +Enhanced Access Control is enabled by default for all customers with the [**Compliance+ Add-On**](../compliance-plus-add-on/). |
| 34 | + |
| 35 | +## Managing Enhanced Access Control |
| 36 | + |
| 37 | +In the [Friendly Captcha Dashboard](https://app.friendlycaptcha.com/dashboard), navigate to the **Settings** page and find the **App Groups** and **Custom Roles** sections. They look like this: |
| 38 | + |
| 39 | +<figure style={{ textAlign: 'center' }}> |
| 40 | + <img src="/img/app-groups-and-custom-roles-settings.png" alt="Screenshot of App Groups and Custom Roles settings" /> |
| 41 | + <figcaption><i>Screenshot of App Groups and Custom Roles settings</i></figcaption> |
| 42 | +</figure> |
| 43 | + |
| 44 | +### App Groups |
| 45 | + |
| 46 | +:::info |
| 47 | + |
| 48 | +There is a built-in App Group called **Default**. If you haven't created any additional App Groups yet, all of your *Applications* belong to the **Default** App Group. |
| 49 | + |
| 50 | +::: |
| 51 | + |
| 52 | +To add a new App Group, type a suitable name into the input box and click the *Add App Group* button: |
| 53 | + |
| 54 | +<figure style={{ textAlign: 'center' }}> |
| 55 | + <img src="/img/app-groups-add.png" alt="Screenshot of adding a new App Group" /> |
| 56 | + <figcaption><i>Screenshot of adding a new App Group</i></figcaption> |
| 57 | +</figure> |
| 58 | + |
| 59 | +Your new App Group should now be visible in the list of App Groups: |
| 60 | + |
| 61 | +<figure style={{ textAlign: 'center' }}> |
| 62 | + <img src="/img/app-groups-created.png" alt="Screenshot of the new App Group" /> |
| 63 | + <figcaption><i>Screenshot of the new App Group</i></figcaption> |
| 64 | +</figure> |
| 65 | + |
| 66 | +To assign an Application to your new App Group, navigate to the *Applications* page to see your list of Applications. Click the *Manage* button for the Application you want to assign. You should see a page like this: |
| 67 | + |
| 68 | +<figure style={{ textAlign: 'center' }}> |
| 69 | + <img src="/img/app-groups-manage-app.png" alt="Screenshot of the Manage App page" /> |
| 70 | + <figcaption><i>Screenshot of the Manage App page</i></figcaption> |
| 71 | +</figure> |
| 72 | + |
| 73 | +Click the *App Group* drop-down menu and select your new App Group, then click the *Save changes* button. You can repeat this step for any other Applications that you want to put into this App Group. |
| 74 | + |
| 75 | +Go back to the main *Applications* page to see your list of Applications. You can now see the name of the App Group in the details of each Application: |
| 76 | + |
| 77 | +<figure style={{ textAlign: 'center' }}> |
| 78 | + <img src="/img/app-groups-applications.png" alt="Screenshot of the Applications page" /> |
| 79 | + <figcaption><i>Screenshot of the Applications page</i></figcaption> |
| 80 | +</figure> |
| 81 | + |
| 82 | +:::info |
| 83 | + |
| 84 | +You cannot delete an App Group that still has Applications assigned to it. To delete an App Group, you first need to assign all of the Applications that are in that App Group to a different App Group. |
| 85 | + |
| 86 | +::: |
| 87 | + |
| 88 | +### Custom Roles |
| 89 | + |
| 90 | +To add a new Custom Role, click the *Add custom role* button: |
| 91 | + |
| 92 | +<figure style={{ textAlign: 'center' }}> |
| 93 | + <img src="/img/custom-roles-add.png" alt="Screenshot of Add Custom Role button" /> |
| 94 | + <figcaption><i>Screenshot of the Add Custom Role button</i></figcaption> |
| 95 | +</figure> |
| 96 | + |
| 97 | +You will be taken to a page where you can configure your new Custom Role: |
| 98 | + |
| 99 | +<figure style={{ textAlign: 'center' }}> |
| 100 | + <img src="/img/custom-roles-form.png" alt="Screenshot of the Add Custom Role form" /> |
| 101 | + <figcaption><i>Screenshot of the Add Custom Role form</i></figcaption> |
| 102 | +</figure> |
| 103 | + |
| 104 | +The form has these fields: |
| 105 | + |
| 106 | +- **Role Name**: The name for your new Custom Role. |
| 107 | +- **Account Permissions**: These are broad permissions that you can grant to this Custom Role. You might for example give the `Manage Billing` permission to a Custom Role designed for your finance team, but give them no other permissions. |
| 108 | +- **All Apps Permissions**: The permission level you set here will be granted to this Custom Role across all Applications. These are the available choices: |
| 109 | + - *Manage*: View, create, update, or delete Applications. |
| 110 | + - *Edit*: View or update Applications. |
| 111 | + - *View*: View all Applications. |
| 112 | + - *None*: Cannot view any Applications. |
| 113 | +- **App Group Permissions**: Here you can grant permissions to one or more specific App Groups. The permission levels (i.e. *Manage*, *Edit*, *View*) behave the same as for *All Apps Permissions* described above. |
| 114 | + |
| 115 | +In the example below, we will create a Custom Role that can *Manage Widget Themes*, *Manage API Keys*, has the *View* permission level for all Applications, and the *Manage* permission level for Applications in one specific App Group: |
| 116 | + |
| 117 | +<figure style={{ textAlign: 'center' }}> |
| 118 | + <img src="/img/custom-roles-form-completed.png" alt="Screenshot of the completed Custom Role form" /> |
| 119 | + <figcaption><i>Screenshot of the completed Custom Role form</i></figcaption> |
| 120 | +</figure> |
| 121 | + |
| 122 | +:::tip |
| 123 | + |
| 124 | +**All Apps Permissions** takes precedence over **App Group Permissions**. It behaves like the default permission level across all *App Groups*. You can then use **App Group Permissions** to grant increased permissions to a specific *App Group*. |
| 125 | + |
| 126 | +You cannot use **App Group Permissions** to restrict permissions below the level of permissions granted by **All Apps Permissions**. If you try to do this, the dashboard will display an error message. |
| 127 | + |
| 128 | +::: |
| 129 | + |
| 130 | +Click the *Save Changes* button when you are done. You will be taken back to the main *Settings* page, where you can see your new Custom Role: |
| 131 | + |
| 132 | +<figure style={{ textAlign: 'center' }}> |
| 133 | + <img src="/img/custom-roles-created.png" alt="Screenshot of the new Custom Role" /> |
| 134 | + <figcaption><i>Screenshot of the new Custom Role</i></figcaption> |
| 135 | +</figure> |
| 136 | + |
| 137 | +You can now assign specific users to your new Custom Role. In the *Settings* page, scroll to the *Members* section, click the *Role* drop-down menu next to the desired user, and select your new Custom Role: |
| 138 | + |
| 139 | +<figure style={{ textAlign: 'center' }}> |
| 140 | + <img src="/img/custom-roles-assign.png" alt="Screenshot of assigning a Custom Role to a user" /> |
| 141 | + <figcaption><i>Screenshot of assigning a Custom Role to a user</i></figcaption> |
| 142 | +</figure> |
| 143 | + |
| 144 | +:::tip |
| 145 | + |
| 146 | +When inviting a new user, you have to select a role for them when sending the invite. The choice of roles includes any Custom Roles you have created. |
| 147 | + |
| 148 | +::: |
| 149 | + |
| 150 | +:::info |
| 151 | + |
| 152 | +You cannot delete a Custom Role that still has users assigned to it. To delete a Custom Role, you first need to assign all of the users with that role to a different role. |
| 153 | + |
| 154 | +::: |
0 commit comments