Provision users automatically with Okta
Axon offers automatic user and group account provisioning with Advanced User Management (AUM), using the System for Cross-domain Identity Management (SCIM) protocol. This allows you to sync Single Sign-On (SSO) user accounts automatically with Axon user accounts and groups. Automatic provisioning can be done with Okta, as described here; or Provision users automatically with Microsoft Entra ID or Active Directory.
Learn about configuring IAM to use Single Sign-On (SSO) in the Single Sign-On Quick Start Guide.
After you configure automatic provisioning, Okta runs a synchronization process at regular intervals. The process queries Axon for assigned users and groups and then creates or modifies them to match the assignment details in Okta.
Prerequisites
Before you begin, ensure you have:
- Axon Administrator access: Your role must include the Configure Agency Security Settings permission to configure provisioning.
- Configure Single Sign-On with Okta
- Okta Org URL: The Okta URL your organization uses for sign-in, in the format
https://{yourorg}.okta.com. For example, Example Police Department’s URL might behttps://examplepd.okta.com. - Okta Administrator access and URL: Your Okta account needs administrator privileges.
- Your Okta admin URL will be in the format
https://{yourorg}-admin.okta.com- using the example above, Example PD’s Okta admin URL would behttps://examplepd-admin.okta.com
Decide if you want to sync only users, or users and groups. If you are concerned about syncing of groups overwriting changes to user accounts when they are synced, only sync users.
Learn more about groups in the Groups overview.
In the Axon Admin Console
- In the Axon Admin Console, expand User Management, and select Automatic Provisioning.
- Set Provisioning Options to Okta.
- Enter your Okta Org URL described in Prerequisites.
-
Copy the SCIM Endpoint URL displayed on the page. You will need this for Okta configuration.
-
The endpoint URL format is:
https://{yourorg}.region}.evidence.com/api/v2/agencies/{yourorgid}/scim -
Example:
https://examplepd.evidence.com/api/v2/agencies/e1e19bb4-ecab-4ffa-b60d-3fd152d50892/scim
-
The endpoint URL format is:
- Set the Sync options to your preference, as described in Prerequisites.
In Okta
The rest of these steps will be done in Okta.
Create the OIDC Application
The OIDC application provides OAuth 2.0 authentication for SCIM provisioning.
-
Sign in to your Okta Admin URL (
https://yourorg-admin.okta.com) described in Prerequisites. - Navigate to Applications > Applications, then select Create App Integration.
- Select OIDC - OpenID Connect as the sign-in method and Web Application as the application type.
- Choose Next.
-
Configure the application settings:
- App integration name: Enter a descriptive name, for example, "OIDC for Axon Integration".
- Grant type: Check both Authorization Code and Refresh Token
- Sign-in redirect URIs: Leave as
http://localhosttemporarily. You will change this later in the process. - Controlled access: This determines who can see the OIDC information. If there isn’t anyone else you want to assign for this, choose Skip group assignment for now. You can add other people later if you find you need help managing this.
- Save.
- Note the Client ID from the application's General tab - you'll need this later.
- Generate a Client Secret and save it securely - you'll need this later.
Configure the Access Policy for the OIDC application
- Go to Security > API > Authorization Servers.
- Select the default authorization server.
- Go to Access Policies and choose Add New Access Policy.
-
Configure the policy:
- Name: "OIDC for Axon Integration"
- Description: "Policy for OIDC for Axon Integration"
- Assign to: select The following clients and choose the OIDC application you just created
- Create Policy.
-
In the newly created policy, select Add Rule and configure:
- Rule name: "Authorization Code for Okta SAML Rule"
- Grant type is: Ensure Authorization Code is checked
- Refresh token lifetime is: Set to Unlimited
- Create Rule.
Create SAML Application with SCIM Provisioning
- Navigate to Applications > Applications and choose Create App Integration.
- Select SAML 2.0 and choose Next.
- In General settings, enter a descriptive name in App name, such as "SAML for Axon Integration", and choose Next.
-
Configure SAML Settings for testing purposes - you will change these later:
- Single sign-on URL:
http://localhost - Audience URI (SP Entity ID):
http://localhost - Choose Next
- Single sign-on URL:
- Select This is an internal app that we have created and then Finish.
-
Update the OIDC Redirect URI:
-
After creating the SAML application, note the application identifier from the URL. The format is:
https://{org}-admin.okta.com/admin/app/{app_identifier}/instance/{instance_id} -
Use this to construct the redirect URI for the OIDC application, in the format:
https://system-admin.okta.com/admin/app/cpc/{app_identifier}/oauth/callback - Go back to your OIDC application, edit the Sign-in redirect URI, and add this redirect URL.
-
After creating the SAML application, note the application identifier from the URL. The format is:
-
Enable SCIM Provisioning:
- In the SAML application, go to the General tab
- In App Settings, select Edit
- Enable SCIM provisioning in the Provisioning section
- Save
Configure SCIM Connector Settings
- In your SAML application, go to the Provisioning tab.
- Under Integration, select Edit.
- Configure the SCIM connection:
| Setting | Value |
| SCIM connector base URL | The SCIM Endpoint URL from In the Axon Admin Console, step 4 (in the format, https://yourorg.evidence.com/api/v2/agencies/{agency-id}/scim). |
| Unique identifier field for users | We recommend Email, but you can choose userName if your organization doesn't want to use email. |
| Supported provisioning actions | Select Push New Users, Push Profile Updates, and Push Groups. |
| Authentication Mode | OAuth 2 |
- Configure OAuth 2 settings:
| Setting | Value |
| Access token endpoint URI | https://{yourorg}.okta.com/oauth2/default/v1/token |
| Authorization endpoint URI | https://{yourorg}.okta.com/oauth2/default/v1/authorize?scope=openid%20profile%20offline_access |
| Client ID | From Create the OIDC Application step 7 |
| Client Secret | From Create the OIDC Applicationstep 8 |
- Save.
- Select Authenticate with OAuth to test the connection. In the popup that appears, sign in with your Okta credentials.
-
After successful authentication, go To App settings and enable:
- Create Users
- Update User Attributes
- Deactivate Users
Configure Attribute Mappings
Navigate to Provisioning > To App > Attribute Mappings to configure how Okta attributes map to Axon.
Add custom Axon Extension Attributes
You must add the Badge ID attribute. If you also want to sync other Axon attributes, add them in this step.
- In Attribute Mappings, select Go to Profile Editor.
- Choose Add Attribute. You must add Badge ID. Add other attributes to meet your needs for user mapping:
| Display name | Variable Name and External Name | External Namespace | Data type | Required? | When to add |
| Badge ID | badgeId
|
urn:ietf:params:scim:schemas:extension:2.0:axon
|
String | Yes | This attribute is required, so you must add it. |
| Rank Name | rankName
|
urn:ietf:params:scim:schemas:extension:2.0:axon
|
String | No | When your organization has a ranking system (such as Lieutenant, Sergeant, etc.) and you want the rank mapped automatically. |
| Evidence Group Name | evidenceGroupName
|
urn:ietf:params:scim:schemas:extension:2.0:axon
|
String | No | When you want to control access to Evidence using Axon's Evidence Group feature. |
| User Group Name | userGroupName
|
urn:ietf:params:scim:schemas:extension:2.0:axon
|
String | No | When you want to add users to Axon's Groups, which can be used for many purposes such as access control or performance review. |
| Axon Role | axonRole
|
urn:ietf:params:scim:schemas:extension:2.0:axon
|
String | No | When you want to control access to certain resource in Axon by role. |
Add custom attributes to SCIM app
- Go to Profile Editor
-
Select Users
-
Choose Apps
- Select the application you created for Axon mapping
-
Add Attribute
Required Attribute Mappings
| SCIM Target Attribute | Recommended Okta Source | Notes |
givenName
|
user.firstName
|
Set by default. Verify correct mapping. |
familyName
|
user.lastName
|
Set by default. Verify correct mapping. |
badgeId
|
employeeNumber
|
The badgeId attribute must be added, as described above in Add custom Axon Extension Attributes and Add custom attributes to SCIM app. |
Below are images of the default mapping. You might need to change a few fields base on your needs, or just leave it as default. In the images below, the only custom attribute added is badgeId, which is required.
Sync users
- In your SAML application, go to the Assignments tab.
- Select Assign and choose either Assign to People or Assign to Groups.
-
Select the users or groups you want to provision to Axon.
- If you Assign to Groups, all users in those groups will be synced with Axon.
- Configure any per-user or per-group attribute overrides if needed.
- Choose Save and Go Back for each assignment.
Enable Provisioning
- Go to the Provisioning tab.
- Under Settings > To App, ensure all desired provisioning actions are enabled.
- Okta will begin synchronizing users and groups according to your configuration.
- Monitor the Tasks and Logs tabs for provisioning status and any errors.
Troubleshooting
Common Issues
| Issue or error | Likely cause | Solution |
| Cannot authenticate to generate a token | Incorrect SCIM connector base URL | Check your SCIM connector base URL. It should be in the format https://{your-axon-domain}/api/v2/agencies/{your-agency-id}/scim |
| The credentials used to connect to the API were invalid; please check your configuration |
|
|
Verifying Configuration
- In Okta, use the Test Connection feature in provisioning settings to verify connectivity.
-
Review Okta provisioning logs for detailed error messages:
- Navigate to Reports > System Log
- Filter for SCIM-related events
-
The Okta org URL in Axon must match the issuer (iss) claim in the OAuth token. For example:
-
Configured URL:
https://{yourorg}.okta.com. -
Token issuer:
https://{yourorg}.okta.com/oauth2/default - The base domains must match for authentication to succeed
-
Configured URL:
Provisioning Logs
Monitor provisioning activities in Okta:
- Go to Applications > your SAML app > Provisioning tab
-
Check the Tasks section for:
- Pending provisioning operations
- Failed operations with error details
- Review System Log for detailed request/response information
Reference: Key Rules
- Organization URL Validation: The Okta org URL in the JWT token issuer must match the configured org URL in Axon.
- Role Handling:
- The role name "Blank" is filtered out (ignored)
- Default role is "User" if no other is specified
- Group Sync:
- Requires Sync Users and Groups configuration
- If you selected Sync Users Only but have configured groups, you will get a 403 Forbidden when trying to sync
- Groups cannot be deleted if they're in the Command Hierarchy
- User Deletion:
- SCIM DELETE operations set user status to Inactive
- Users are not permanently removed from the system
- External ID:
- Primary identifier for SCIM operations
- Must be unique across all users in the agency
- Used to link accounts for SSO
- Unique Fields:
userNamemust be uniqueemailmust be uniqueexternalIdmust be unique
- Default Language uses your organization's language setting in Axon, or defaults to EN_US.
- Rank and Role Lookup searches by name - they must exist in your Axon organization before provisioning users with those values.




