<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-M74D8PB" height="0" width="0" style="display:none;visibility:hidden">
Loading
Skip to NavigationSkip to Main Content
Handling Large Entitlement Imports Using CSV
Okta Classic Engine
Identity Governance
Okta Identity Engine

Overview

When importing user entitlements for Disconnected Applications in Okta Identity Governance, administrators are limited to a maximum file size of approximately 25,000 records (or ~8MB) per single CSV upload.

Administrators with user bases larger than 25,000 cannot upload a single master file and must split their data. However, incorrect handling of multiple files can result in the unintended removal of entitlements. 

 

Solution

To import more than 25,000 records, you must split the user data into multiple CSV files (batches) and upload them sequentially.

 

⚠️ Critical Guardrails:

You must strictly adhere to the following rules to avoid data loss during the multi-file import process.

 

1. Consistency of Entitlement Columns (Crucial)

Every batch file must contain the exact same entitlement headers (columns) as the previous files, even if those specific entitlements are not being assigned to the users in the current batch.

  • Risk: If Batch_2.csv is missing a column (e.g., ent_License) that was present in Batch_1.csv, Okta may interpret this as an instruction to remove that entitlement type from the application schema or configuration.
  • Requirement: Ensure strict schema uniformity across all files.

2. Distinct User Sets

Ensure that users are not duplicated across files to prevent conflicting updates.

  • File 1: Users A-M
  • File 2: Users N-Z

3. Adding New Entitlement Type

If there is a need to add a new entitlement type to the Disconnected Application, we can add a new column to the subsequent batch files, but keep in mind the following points:

  • The subsequent batches should still contain all the existing entitlement types/columns.
  • This new entitlement type will be created in the application without any impact on the existing entitlement types.
  • To assign this entitlement to existing users, update the existing CSVs with this new entitlement along with the existing entitlement values.

 

Step-by-Step Implementation Guide

To demonstrate the multiple file import for a single application, we will take an example of an application X where we need to import 50k Users along with their entitlements called as Role and License. Follow the below procedure to safely import this large dataset.

 

Step 1: Prepare Your CSV Files

Divide your master user list into smaller files, ensuring each file meets the size limits.

  • Batch Size: Ensure each file has fewer than 25,000 rows.
  • Header Check: Check and verify that, in each of these batch files, the header row is identical.

 

Now, let's look at how these files should be formatted before we import them into the application.

Correct Formatting (Safe):

File 1 (Users 1–25k):

login,email,ent_Role,ent_License
user1,user1@test.com,Admin,Full
user2,user2@test.com,Viewer,Basic
...

File 2 (Users 25k–50k):

login,email,ent_Role,ent_License
user25001,user25k@test.com,Editor,Basic
user25002,user25k2@test.com,Viewer,    <-- Leave value empty if not applicable, but KEEP COLUMN

NOTE: Even if these users do not need a specific license, the column must remain.

 

Incorrect Formatting (Data Loss Risk):

If File 2 omits the ent_License column, previously imported license data will be impacted.

login,email,ent_Role
user25001,user25k@test.com,Editor
...

 

Step 2: Upload Files Sequentially

  1. Navigate to your Disconnected Application instance in the Okta Dashboard.
  2. Go to the Import tab.
  3. Select "Import user entitlements from CSV".
  4. Upload File 1. Wait for the import and processing to complete successfully.
  5. Once finished, repeat the process for File 2, then File 3, and so on.

 

Step 3: Verification

After all batches are uploaded:

  1. Check the Import Monitoring logs to ensure no rows failed.
  2. Spot-check a user from File 1 to ensure their entitlements are still intact.
  3. Spot-check a user from File 2 to ensure their new entitlements were applied.

 

Guidelines

  • Template Creation: Create a standard CSV template with all necessary headers (e.g., login, email, ent_AppRole, ent_Department) and ensure all data owners use this exact template when generating split files.
  • Validation: Before uploading to Production, perform a test with 2 small files (5 users each) in a Sandbox environment to confirm your specific entitlement schema persists.

 

Related References

Loading
Handling Large Entitlement Imports Using CSV