About Okta
Okta is a cloud identity and access-management platform that lets organisations securely manage users, groups and application access. Connecting Okta to Serval enables zero-touch provisioning, access reviews and incident-response workflows directly from chat.What the Okta integration enables
Capability | Description |
---|---|
Access Management | Create, update, and manage users and groups |
Automation workflows | Streamline identity lifecycle management, provision users to applications via groups, and more |
Okta Configuration
1. Create App Integration
- Log into your company’s Okta admin console
- Navigate to Applications > Applications
-
Select
Create App Integration
-
Select API Services
- Title the app “Serval” (this can be any value, but make sure to give it a title that helps you remember that this application is for integration with the Serval platform.
- Hit Save & Finish creating the app integration.
2. Configure scopes/permissions
- Grant API scopes for the new integration. We recommend at least granting read access to users, groups and applications, as this will allow you to use read-only endpoints within Serval. However, to facilitate taking action in Okta to grant users access to applications or solve other common issues automatically, you will also need to grant some manage scopes.
- Read: okta.users.read, okta.groups.read, okta.apps.read, okta.logs.read
-
Write: okta.users.manage, okta.groups.manage and okta.apps.manage
-
Next, you will need to grant this app integration an admin role. Navigate to Admin roles and hit Edit Assignments.
-
You must now assign roles to the application. Here is an article which explains the difference between roles and scopes. You can select one of the following options:
- Grant Serval the
Super Administrator
role. This will allow Serval to access all resources in your account, but only using the API scopes you configured previously. - Assign another set of predefined roles. We recommend “Group Administrator” and “Application Administrator” at a minimum. Here is an article which outlines the different permissions which can be accessed with these roles.
- Create a custom role. This option can be used if you want to configure fine grained permissions for Serval. Again, API scopes also govern which actions Serval can take in your Okta account.
- Grant Serval the
-
Optionally, you can create a new role.
-
If you’ve chosen to create a new role, grant it the permissions you want Serval to be able to perform.
-
Now you will need to assign a resource set to this role. Add an assignment, select the ones you like, and hit Save Changes\
-
If you don’t already have an applicable resource set, you can create a resource set for this admin role to have control over. Navigate to Security → Administrators and then select the resources tab. Select Create a new resource set. Select the resources you want Serval to be able to manage and hit Create.\
-
If you’ve chosen to create a new role, grant it the permissions you want Serval to be able to perform.
3. Complete app integration configuration:
- In general settings, uncheck the box requiring DPoP and hit Save. We do not currently provide PoP.
.png?fit=max&auto=format&n=1gfWe52bLpPA-o-L&q=85&s=e768d6e5abf129944a9d6dd20c32e48e)
- Next, configure the client credentials. We use the private key/public key method for added security. Make sure your configuration looks like this:
.png?fit=max&auto=format&n=1gfWe52bLpPA-o-L&q=85&s=34b853762dcc66751f97085e83015473)
-
Next, select
Add Key
and then generate one. Copy the JSON **data to your clipboard and select Done.- Note: Just because a key was generated does not mean it was saved, the key does not save until you select Done. Please verify that a key was actually created & saved.
Serval Configuration
- In Serval, navigate to
Applications
and then theAvailable
tab. Find the Okta integration and pressConnect
.
.png?fit=max&auto=format&n=1gfWe52bLpPA-o-L&q=85&s=b4ec50ff9ec0d0875c49208d5381e23c)
- Copy the JSON from the last step into the
Client Secret
section. - Your Instance ID should be the domain of your okta instance, so if your okta is found at
https://mycompany.okta.com/
, your instance ID would bemycompany.okta.com
. If you are in the admin console, do not include the-admin
in this (i.e.mycompany-admin.okta.com
) - Your Client ID can be found at the top of the app integration page:
.png?fit=max&auto=format&n=1gfWe52bLpPA-o-L&q=85&s=cb7918addc4337f51f78f6266c984052)
- Enter scopes. The scopes you enter should be a comma separated list of what you granted the application previously in Okta. For example:
okta.apps.read, okta.apps.manage, okta.users.read, okta.users.manage, okta.groups.read, okta.groups.manage, okta.logs.read
- Click
Save
- You should now be able to build or install workflows which leverage Okta APIs, e.g. you could build a workflow for creating a new Okta group or a new user.