On-prem connector for generic databases
Early Access release
The on-prem connector for generic databases is available only with the Okta Identity Governance (OIG) product. Contact your Okta representative for more information.
The on-prem connector for generic databases provides an out-of-the-box solution for connecting on-premises databases with the Okta Identity Governance platform. This connector uses the Okta Okta On-prem SCIM agent to manage users and entitlements in various database systems. This enhances security and simplifies governance by eliminating the need for custom integrations.
The integration with Okta enables core identity governance capabilities. This includes access request, access certification, user provisioning and de-provisioning, and segregation of duties (SoD) for your on-premises database environments.
This connector supports provisioning and Entitlement Management for Oracle, MySQL, PostgreSQL, IBM Db2 LUW, and Microsoft SQL Server relational database management systems.
System requirements
To install the on-prem connector for generic databases, ensure that your system meets the hardware and software requirements. See System requirements for On-prem Connector - Generic Databases.
Provisioning and entitlement features
This connector supports the following capabilities:
- Create users: Automatically creates a user in the on-premises database when the user is assigned to the app in Okta.
- Update users: Syncs any changes made to a user's profile in Okta to the database.
- Provision/de-provision users: Manages the active or inactive state of user accounts in the database.
- Manage entitlements: Assigns or removes user entitlements from the database through Okta.
- Import users and entitlements: Performs manual and scheduled imports of user and entitlement data from the database into Okta.
Before you begin
- Install the Okta On-prem SCIM Server agent
- Your database must comply with the database requirements.
- Gather the following information to use a database account with the On-prem Connector:
- Username for the database account
- Password for the database account
- Type of database
- IP/Domain name
- Port number
- Name of the database
Download the JDK and JDBC Packages
- Download JDK version 21 from a trusted source and upload it to your Linux server.
- Download the required JDBC driver (for example, Oracle OJDBC) and upload it to your Linux server.
Enable the database connector features
- In the Admin Console , go to .
- In the Early access section, enable the following options:
- On-prem connector for generic databases
- OPP Agent with SCIM 2.0 support
- Enable the Okta On-Prem SCIM Agent
Configure the on-prem connector for generic databases
After you've installed and configured the necessary components, you can configure the app in your Admin Console.
-
In the Admin Console, go to .
- Click Browse App Catalog.
- Search for and select
On-prem Connector for Generic Databases, and then click Add Integration. - Configure your general settings, and then click Next.
- Configure your sign-on options, and then click Done.
- Go to the General tab and click Edit in the Entitlement management section.
- From the Entitlement management dropdown list, select Enabled.
- Click Save. It may take a few moments for the feature to become enabled, after which you can refresh the page to view the Governance tab.
- Go to the Provisioning tab. Click Enable provisioning.
- Select the Okta On-Prem SCIM Agent that you installed, and click Next.
- Click Next.
- Enter your database connection details such as username, password, and type.
- Click Connect agents.
- Define schema and import settings.
- Define provisioning actions.
- Map app attributes on the Provisioning page.
Define schema and import settings
- Go to the Provisioning tab.
- Under Integration, select Okta section. Click Edit next to Schema discovery & Import.
- For Get Users, select Enabled.
- Select SQL Statement or Stored Procedure.
- Enter the query or the procedure and the user ID.
- For Get All Entitlements, select Enabled.
- Under Basic Information, configure the following:
- Resource Type: The name that Okta uses to identify this entitlement type, for
example
RolesorGroups. - Description (optional): A label to distinguish this entitlement type.
- Resource Type: The name that Okta uses to identify this entitlement type, for
example
- Under Query Configuration, select SQL Statement or Stored Procedure, then enter the SQL statement or stored procedure that retrieves all values for this entitlement type from your database.
- Under Field Mapping, enter the following:
- Entitlement ID: The database column used as a unique identifier for the entitlement.
- Entitlement Display: The database column used as the entitlement label.
- Under Entitlement values per user, select one of the following:
- Multiple values per user: Users can hold more than one value of this entitlement type at the same time.
- Single value per user: Each user holds exactly one value of this entitlement type.
Note:This setting can't be changed after the first import completes and entitlements are discovered.
- To define an additional entitlement type, select Add Another and repeat the previous four steps.
- Click Save.
- In the Confirm entitlement settings dialog, review the configuration, then select Confirm and Save.
Note:
After you confirm, entitlement type names and field mappings can't be changed.
- After schema discovery is successful, select Edit next to Schema discovery & Import to configure user-specific queries.
- In the User Specific Import section, enable Get Entitlement. For each entitlement type, select SQL Statement or Stored Procedure and enter the SQL statement or stored procedure that retrieves entitlements for a specific user.
Note:
For stored procedures, map each procedure parameter in the Parameter mapping table. Set the user identifier parameter to DATABASE_FIELD with a field value of USER_ID. If the procedure uses a cursor, add a second row with CURSOR and a field value of REFCURSOR.
- Select Save.
Define Incremental Import settings
- Go to the Provisioning tab.
- Under Integration, select the Database Operations section, and then click Edit next to Schema Discovery & Import.
- EnableGet Users.
- Select SQL Statement or Stored Procedure.
- Enter the query and provide user ID column name.
- Optional. In the Account Status Attribute box, enter the name of the status column for the user in your database. Then, enter the value that corresponds to and active status. If you skip this step, Okta treats all users that you import through Incremental Import as active users.
- Enable Incremental Import.
- Select SQL Statement or Stored Procedure.
- To filter for users that were modified after the previous successful import, enter the query, and use a question mark (
?) as a placeholder for the last imported time. - In the Database Field box for the placeholder, enter the name of the timestamp column from your database.
- In the Timestamp Column box, enter the same timestamp column name.
- Click Save.
Database requirements
- Your database tables must support soft deletion. Incremental Import relies on this history to detect which records changed. Permanently deleting rows instead of marking them as deleted causes Incremental Import to lose track of that history.
- Each table must include a timestamp column that updates automatically to the current time whenever a row is written or modified. Incremental Import uses this timestamp to identify records that changed since the last import.
- Your user and entitlement data might reside in separate tables. If so, your database must explicitly update the timestamp on the User table whenever an entitlement configuration changes. Incremental Import can't detect entitlement-only changes unless the User table's timestamp reflects them.
- The column that your getUser query fetches must match the column after you configure Incremental Import. Don't change the fetched column after you configure Incremental Import, because doing so can cause data loss.
- Without the Active Status Attribute and its value, Okta doesn't deactivate users, even when a user's status is inactive in your database.
Define provisioning actions
- Go to the To App section and click Edit.
- Enable your desired provisioning options. For example: Create User, Update User, Deactivate User.
- Provide the necessary SQL statements or stored procedures for each operation (for example: INSERT, UPDATE, DELETE).
- Map the parameters in your SQL statements or stored procedures to the appropriate user attributes from Okta.
- Click Save.