Okta Admin v2
Provides integration with the Okta Management API for administering users, groups, and group membership in an Okta organization. Use it to list and look up users and groups, create and update them, delete them, and assign or unassign users to and from groups.
Revision History
0.0.0.12 - Initial release.
Connection
This Connection identifies the Okta organization and stores the credentials used by every Okta Admin method. Choose an Authentication mode; only the properties for the selected mode are shown.
| Property | Type | Description |
|---|---|---|
API Domain |
String | The exact HTTPS origin of your Okta organization, for example https://your-org.okta.com. Do not include a path or trailing slash. |
Authentication |
Enum | ServiceAppOAuth to authenticate as an Okta API service app, or ApiToken to use an Okta API token. |
Client ID |
String | ServiceAppOAuth only. The client ID of the Okta API service app. |
Key ID |
String | ServiceAppOAuth only. The key ID (kid) of the public key registered on the service app that matches Private Key. |
Private Key |
Masked | ServiceAppOAuth only. The private RSA key in JSON Web Key (JWK) format. The value must be valid JSON. |
Scope |
String | ServiceAppOAuth only. Space-delimited Okta scopes granted to the service app, for example okta.users.read okta.users.manage okta.groups.manage. |
API Token |
Masked | ApiToken only. An Okta API token, sent using SSWS authentication. |
Setup Notes
- The Okta Admin Node is available on Cloud and compatible local Runtime clusters.
- For
ServiceAppOAuth, in the Okta Admin Console, create an API Services app integration that uses public key / private key client authentication, register the public key that matches your private JWK, and note its client ID and key ID. - Grant the Okta API scopes the service app needs, and enter the same scopes in
Scope:- User reads require
okta.users.read. User writes requireokta.users.manage. - Group reads require
okta.groups.readorokta.groups.manage. Group and membership writes requireokta.groups.manage.
- User reads require
- Assign the service app an admin role, and a resource set where applicable, that allows the operations you intend to run. A granted scope does not give the service app an admin role by itself.
- The Node requests access tokens from the organization authorization server and supports Demonstrating Proof of Possession (DPoP) when it is required by the service app. Tokens are renewed automatically when they expire or are rejected.
- In
ApiTokenmode, the token acts with the permissions of the admin who created it. If Okta rejects the token, replace it in the Connection. - Test Connection performs a read-only request for one user, so it requires user read access. A successful test does not confirm the permissions needed for other operations.
Methods
Each method exposes templates for a fixed set of Okta Management API operations. Select a template to populate the stable OperationId and the operation-specific Options and Items fields. Template names come from the Okta API, and each template description shows its HTTP method and path.
List
Lists users, groups, or related records. The Node pages through results automatically and emits one row for each record.
Available templates:
List all users(GET /api/v1/users) - Lists users in the organization.List all groups(GET /api/v1/users/{id}/groups) - Lists the groups a user belongs to.List all assigned app links(GET /api/v1/users/{id}/appLinks) - Lists the app links assigned to a user.List all groups(GET /api/v1/groups) - Lists groups in the organization.List all member users(GET /api/v1/groups/{groupId}/users) - Lists the users in a group.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | Route and query values for the selected operation. User-scoped templates require the user's id, and List all member users requires groupId. List all users and List all groups (/api/v1/groups) accept optional search, filter, q, sortBy, and sortOrder values, and List all users also accepts fields. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One row per user, group, or app link returned by Okta. |
Get
Gets one user or group.
Available templates:
Retrieve a user(GET /api/v1/users/{id}) - Gets a user by ID, login, or unambiguous login shortname.Retrieve a group(GET /api/v1/groups/{groupId}) - Gets a group by ID.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | The required id for Retrieve a user, or groupId for Retrieve a group. |
| Return | Type | Description |
|---|---|---|
Response |
Array | A single row containing the user or group returned by Okta. |
Create
Creates users or groups, one for each row in Items.
Available templates:
Create a user(POST /api/v1/users) - Creates a user.Add a group(POST /api/v1/groups) - Creates an Okta group.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | Optional query values for Create a user: activate, provider, and nextLogin. activate defaults to false, so new users are created without being activated unless you set it to true. |
Items |
Array | One create request per row. Create a user rows contain a nested profile object and can include groupIds, realmId, and type. Add a group rows contain name and description. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One row per input item, containing the created user or group and Flowgear result metadata. |
Update
Updates a user or replaces a group profile, using each row in Items as one request.
Available templates:
Update a user(POST /api/v1/users/{id}) - Partially updates a user. Only the fields you supply are changed.Replace a group(PUT /api/v1/groups/{groupId}) - Replaces the profile of an Okta group.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | The required target: id for Update a user, or groupId for Replace a group. Update a user also accepts an optional strict value. |
Items |
Array | One update request per row. Update a user rows contain a nested profile object and can include realmId and type. Replace a group rows contain name and description. |
| Return | Type | Description |
|---|---|---|
Response |
Array | One row per input item, containing the updated user or group and Flowgear result metadata. |
Delete
Deletes one user or group.
Available templates:
Delete a user(DELETE /api/v1/users/{id}) - Deletes or deactivates a user.Delete a group(DELETE /api/v1/groups/{groupId}) - Deletes an Okta group.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | The required target: id for Delete a user, or groupId for Delete a group. Delete a user also accepts an optional sendEmail value. |
| Return | Type | Description |
|---|---|---|
Response |
Array | A single row containing Flowgear result metadata and any error details returned by Okta. |
AddMember
Assigns a user to a group. Select the Assign a user to a group template (PUT /api/v1/groups/{groupId}/users/{userId}).
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | The required groupId and the userId of an existing Okta user. |
| Return | Type | Description |
|---|---|---|
Response |
Array | A single row containing Flowgear result metadata and any error details returned by Okta. |
RemoveMember
Unassigns a user from a group. Select the Unassign a user from a group template (DELETE /api/v1/groups/{groupId}/users/{userId}).
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | Okta Admin Connection details. |
OperationId |
String | Stable operation identifier populated by the selected template. |
Options |
Object | The required groupId and the userId of an existing Okta user. |
| Return | Type | Description |
|---|---|---|
Response |
Array | A single row containing Flowgear result metadata and any error details returned by Okta. |
Usage Notes
Optionsaccepts only the route and query values shown by the selected template. Paging is managed by the Node, solimit,after, andexpandare not available.- Route values such as
id,groupId, anduserIdmust be supplied explicitly. The valuesme,., and..are rejected. Optionsapplies to the whole invocation. ForUpdate, every row inItemstargets the user or group identified inOptions. To update several different users or groups, run the Node once per target, for example inside a For Each.Listfollows Okta's next-page links automatically. Aqquery is a bounded lookup that Okta does not page, so usesearchorfilterfor larger result sets. User search results are eventually consistent.- An unfiltered
List all usersrequest does not return users with theDEPROVISIONEDstatus. - The
Listtemplates show samplesearch,filter, andqexpressions, but samples are not applied unless you enter a value. - Enter string and integer list fields, such as
groupIdsinCreate a user, as comma-separated values. Quote values that contain commas, quotes, or line breaks, and double any embedded quotes. Spaces are preserved, and an empty value produces an empty list. fieldsinList all usersuses Okta's projection syntax, for exampleid,status,profile:(firstName,lastName), rather than a comma-separated list.Create,Update,Delete,AddMember, andRemoveMemberresponses includeFlowgear.IsSuccess,Flowgear.Message, andFlowgear.Request. Failed rows also include Okta'serrorCode,errorSummary,errorLink,errorId, anderrorCauseswhen Okta returns them.- When an individual item is rejected, for example because of a validation error or a target that does not exist, the Node returns a failed row and continues with later items. Authentication, permission, connection, and other request-wide failures stop the operation.
- An HTTP
403failure usually means the Connection lacks the required access. ForServiceAppOAuth, check the requested and granted scopes and the service app's admin role and resource set. - User credentials and passwords, custom profile attributes, and fields that Okta marks as read-only cannot be supplied in
Items. Unknown fields are rejected. - Group writes apply to Okta-owned groups. Groups imported from directories such as Active Directory remain subject to Okta's restrictions.
GetandListreturn records as Okta provides them, includingprofileand_links. An empty collection returns no rows.
Known Issues
- Calling
Delete a useron a user that is not yet deactivated deactivates the user instead of deleting it. To permanently delete the user, runDelete a useragain. The Node never issues the second request automatically. - A successful response means Okta accepted the request. It does not confirm that downstream provisioning to connected applications has finished.
- Two
Listtemplates share the Okta nameList all groups. Use the template description to distinguish them:GET /api/v1/groupslists groups in the organization, andGET /api/v1/users/{id}/groupslists the groups for one user.