Rogue Security

Okta

Create a workspace for each Okta group and keep people in the right workspace as they join, move and leave.

The Okta integration turns your Okta groups into Rogue workspaces. You pick the groups to import, Rogue creates a workspace named after each one, and a sync every 15 minutes places each group member in that workspace as a person. Their browsers, coding agents and endpoints follow them there, so each team gets its workspace's rulesets and guardrail modes without anyone enrolling people by hand.

Rogue only reads from Okta and never writes to your Okta org. Manage the integration from the console under Integrations, then Okta IdP. If Okta IdP doesn't appear under Integrations, it isn't enabled for your organization yet; contact support to turn it on. Organization members never see it.

Supported scopes

The Rogue Security app in the Okta Integration Network supports these read-only scopes:

ScopeWhat Rogue reads
okta.groups.readYour groups and who is in each one
okta.users.readThe profile of each group member, such as email and status

Before you start

Connect Okta

Install the Rogue Security app

In the Okta Admin Console, open Applications, then API Service Integrations, then Add Integration. Select Rogue Security, then Install & Authorize.

Copy the credentials

Copy the client secret, your Okta domain and the client ID. Okta shows the client secret only once, so copy it before you leave the page.

Paste the secret

In Rogue, open Integrations, then Okta IdP. Choose Okta catalog, paste the Okta domain, client ID and client secret, then select Connect.

When you select Connect, Rogue gets a token from Okta, copies your groups into Rogue, then copies their people and memberships. Nothing is saved until all three succeed. If one fails, the form shows the error message and what to fix.

Rogue stores the client secret encrypted and never shows it again, in the console or the API.

Import groups

After connecting, every group is selected. Each one becomes a workspace with the same name. Untick the groups you don't want, and select a group to see who's in it, with each person's Okta status and their other groups.

Groups created in Okta after setup aren't imported automatically. To import them, select Edit groups on the Okta page: Rogue reads every group from Okta again and reopens this step.

People in more than one group

A person goes to exactly one workspace. When someone is in more than one imported group, or in one group and also enrolled by hand, the Resolve conflicts step lists them. Rogue picks a default for each and you change any you disagree with. If nobody overlaps, the step shows No conflicts and is skipped.

Through the management API, a per-person choice can also be any non-archived workspace (workspace:<id>), for example to pull a compromised account into a stricter workspace at once.

Overlaps that appear after setup, such as someone joining a second group, are placed by default and never wait for you. The Okta page then shows N new conflicts since the last save with Review conflicts.

Review and first sync

The Review step shows how many workspaces Rogue will create, how many people it places or moves, and how many go Back to Default. Open a section to see exactly who goes where. Nothing changes until you select Create workspaces & sync (or Save & sync when no workspace is new). Rogue then creates the workspaces, places people, and lists what happened.

Back to Default

A person Okta placed goes Back to Default when they leave every imported group, when their group is no longer imported, or when Okta suspends or deactivates them. Rogue removes their Okta placement, so their devices resolve as they would without it: a device enrolled directly keeps its workspace, otherwise the workspace of the API key it uses, otherwise the Default workspace.

Okta users who are staged, provisioned, in recovery, locked out or have an expired password still count as group members.

Removing a group from the import keeps its workspace, since policies may be attached to it. A group renamed in Okta keeps its workspace's name.

Syncing

Rogue syncs every 15 minutes. Each sync reads your imported groups and their members from Okta and applies the difference: new members are placed, people who changed groups are moved, and leavers go Back to Default. Select Sync now on the Okta page to sync at once. People are matched by their Okta email profile attribute.

If any read from Okta fails, the sync stops before changing anything, and the Okta page shows Sync failed with the error message. The next sync tries again.

Held syncs

A sync that looks unusual waits for you instead of applying. It changes nothing in Rogue and shows a banner with what it would do and Apply anyway. A sync is held when:

Check Okta first. If the change was intended, select Apply anyway: Rogue runs the sync again with only that reason waived. If the setup changed since the hold, Apply anyway is refused so you never approve a situation you didn't see. Syncs keep running while one is held, and once Okta is back to normal the next sync applies and the banner clears.

Everyone else

The Groups tab ends with Everyone, mapped to the Default workspace. Select it to list the Okta people no workspace other than Default holds: members of groups you didn't import, people Okta suspended or deactivated, and people Rogue couldn't place. Rogue reads Everyone's members when you connect and whenever you select Edit groups, so people in no Okta group are listed too. The management API returns the same list from GET /api/v1/connectors/okta/groups/everyone/members.

Not placed

The People tab lists everyone in Rogue's copy of your Okta directory, plus people enrolled by hand, and why anyone isn't placed:

Read-only workspaces

Okta owns workspaces and who's in them while it's connected. The Workspaces page turns read-only, with a banner naming your Okta domain and Edit in Okta IdP:

API key enrollments and devices enrolled directly stay editable on their own pages. The management API's workspace and person-enrollment writes return 409 with details.code set to managed_by_okta.

To move someone Okta placed, change their groups in Okta or pick their workspace under Resolve conflicts.

Update credentials

Select Update credentials on the Okta page to change the client ID or client secret. Rogue tests the new credentials against the same Okta domain, then replaces the stored ones. Your imported groups and choices stay.

To rotate the client secret, generate a new secret on the Rogue Security app in Okta, update credentials in Rogue with it, then deactivate the old secret in Okta. To move to a different Okta org, disconnect first: saved groups belong to the old org.

Disconnect

Select Disconnect on the Okta page. Rogue deletes its copy of your Okta directory and the sync setup, and everyone Okta placed goes back to Default. Workspaces and people added by hand stay, and the Workspaces page becomes editable again.

Disconnecting doesn't revoke the client secret in Okta. Afterwards, deactivate or remove the Rogue Security app in Okta.

Who can do what

The Okta page lists everyone in your Okta groups, so only owners and admins see it. Members don't.

ActionPermissions
View the Okta page, groups, people and conflictsoktaIntegration:read
Connect, update credentials, change the group selection, order and choicesoktaIntegration:manage
Save & sync, Sync now, Apply anyway, Edit groupsoktaIntegration:manage, workspace:create, workspace:enroll
DisconnectoktaIntegration:manage, workspace:enroll

Owners and admins hold all of these. Admin API keys follow the same rules: the read-only preset can read, and the administrator preset can also save, sync and disconnect. Connecting and updating credentials have no API operation and need a browser signed in to the console, so a client secret never passes through an automation or an AI agent.

The audit log records connecting, updating credentials, disconnecting, every save, every held sync, and every sync that changes placements, with who was placed, moved or sent back to Default.

Who decides placement

While Okta is connected, anyone who can change group membership in Okta (group owners, help desk admins, group rules) decides which workspace a person lands in, and so which policies apply to them. Review who holds those rights in Okta before you connect. The audit log records every placement, and held syncs catch mass changes.

Error messages

MessageWhat to fix
Enter your Okta domain, such as acme.okta.com. Custom URL domains aren't supported.Use the org's Okta hostname (ending in .okta.com, .oktapreview.com, .okta-emea.com or .okta-gov.com) with no port or path.
Okta rejected the client ID or credential. Check the app's client authentication and key.Check the client ID, and paste the client secret again. If you rotated it, use the new secret.
The Okta app is missing the okta.groups.read scope. Grant it under Okta API Scopes.On the Rogue Security app's Okta API Scopes tab, check that okta.groups.read is granted.
The Okta app needs an admin role, such as Read-only Administrator.On the Rogue Security app's Admin Roles tab, assign Read-only Administrator.
Okta couldn't find that resource.Check that the domain is the Okta org where the app lives.
Okta's rate limit was reached. The next sync will try again.Nothing to do. Rogue slows down once less than half of an Okta rate limit is left. If this repeats, check for other integrations using up the org's API rate limits.
Okta didn't answer in time.Usually temporary. If it repeats, check Okta's status page.
Rogue couldn't reach Okta.Check the domain. If it's right, the problem is usually temporary.
Okta sent a response Rogue couldn't use.Check that the domain is the org's Okta name and not a custom URL domain that redirects. If it repeats, contact support.
The Okta directory is larger than one sync can read.One sync reads at most 5,000 groups and 100,000 people. Contact support.
Okta is already connected. Disconnect it first.Your organization already has an Okta connection. Update its credentials, or disconnect before connecting again.
Changing the Okta domain needs a disconnect first.Update credentials only works for the same Okta org. Disconnect, then connect the new org.
The Okta setup changed since the sync was held. Review the new sync instead.Someone saved a change after the hold. Wait for the next sync or select Sync now, then review what it does.
The Okta setup kept changing during the sync. Try again.Another save or sync landed during this one. Try again.