Skip to content
Last updated on

Roles in Okta

Overview

Okta provides roles to define the scope of privileges in your org so that admins have the appropriate level of access to complete their tasks. By default, each org contains a set of standard admin roles with predefined permissions to access predefined resources. You can extend the list of roles in your org and create custom admin roles with specific permissions to access specific resources.

When you assign an admin role to a principal, you grant them a specific set of access privileges. Principals can be users, groups of users, or client apps. When a role is assigned to a group, all members of the group automatically have the privileges that are granted by the role.

For standard role assignments, see the following principal-specific assignment APIs:

For custom role assignments, follow these steps:

  1. Create a custom role.
  2. Create a resource set.
  3. Create a resource set binding with your custom role and principal members.

Notes

  • When you create a custom service app to access Okta APIs, you must assign an admin role to your app since admin roles aren't automatically assigned to apps. See Assign admin roles to the OAuth 2.0 service app.
  • A principal with a custom admin role can't add or remove the super admin (SUPER_ADMIN) standard role to or from another principal. This custom role operation isn't permitted regardless of the permissions for the custom role. For example, a service app with an assigned custom role can't make an API request to assign the super admin role to a group, even if the custom role has the okta.users.groupMembership.manage, okta.groups.manage, and okta.users.manage permissions.

IAM access to API resources

Okta recommends that you grant your principal (user, group, or client) least privilege access to API resources. To grant least privilege access to API resources, assign the principal a standard or custom admin role with minimal permissions.

The suggested standard admin roles and custom admin permissions are documented for some Okta API resource operations. For some use cases that involve cross-resources in the operation, you may need two or more admin roles or permissions for a successful request.

For example, if you want to request a governance operation on an app resource, you may require both the ACCESS_CERTIFICATIONS_ADMIN and the APP_ADMIN standard roles assigned to you.

Another example is shown in the Retrieve a user schema operation:

Admin roles: API_ACCESS_MANAGEMENT_ADMIN APP_ADMIN ORG_ADMIN

Permissions: okta.apps.manage

In this example, you need to assign the API_ACCESS_MANAGEMENT_ADMIN, APP_ADMIN, or ORG_ADMIN standard admin roles to your principal for them to access the operation for common use cases. Or if your principal is assigned a custom admin role, that role must include the okta.apps.manage permission for them to access the Retrieve a user schema operation.

Standard roles

The following standard roles are available in all Okta orgs. Standard roles have predefined permissions and access to predetermined resources. You can optionally narrow the list of predetermined resources by specifying resource targets when you assign the standard role to a principal.

See Standard administrator roles and permissions for a list of permissions included in each standard admin role.

Note: Use the enumerated values in the Role column for the type parameter when you assign standard admin roles.

RoleLabelOptional targets
API_ACCESS_MANAGEMENT_ADMINAPI Access Management Administrator
APP_ADMINApplication AdministratorApps
GROUP_MEMBERSHIP_ADMINGroup Membership AdministratorGroups
HELP_DESK_ADMINHelp Desk AdministratorGroups
MOBILE_ADMINMobile Administrator
ORG_ADMINOrganization Administrator
READ_ONLY_ADMINRead-only Administrator
REPORT_ADMINReport Administrator
SUPER_ADMINSuper Administrator
USER_ADMINGroup AdministratorGroups

IAM-based standard roles

IAM-based standard roles have the custom roles format, where preset permissions and resource sets are bound to the IAM-based standard role. However, these IAM-based standard roles are still immutable. You can't update the role, the permissions, or the resource set.

RoleLabelResource setPermissions
ACCESS_CERTIFICATIONS_ADMINAccess Certifications AdministratorACCESS_CERTIFICATIONS_IAM_POLICYokta.governance.accessCertifications.manage, okta.governance.collections.read, okta.apps.read, okta.users.read, and okta.groups.read
ACCESS_REQUESTS_ADMINAccess Requests AdministratorACCESS_REQUESTS_IAM_POLICYokta.governance.accessRequests.manage, okta.apps.assignment.manage, okta.governance.collections.read, okta.groups.appAssignment.manage, okta.apps.manageFirstPartyApps, okta.apps.manage, and okta.users.appAssignment.manage
WORKFLOWS_ADMINWorkflows AdministratorWORKFLOWS_IAM_POLICYokta.workflows.flows.invoke, okta.workflows.flows.manage, okta.workflows.flows.folders.manage, okta.workflows.tables.manage, okta.workflows.connections.manage, and okta.workflows.connectors.manage

You can assign a Workflows IAM-based standard role for users or groups to manage the Workflows product. See Workflows Administrator. Within the Workflows console, users with the Workflows admin or the super admin roles can also assign granular role-based access to manage workflows resources. See Resource-based Access Roles.

Permissions

For custom roles, permissions allow the principal to perform tasks and access resources. See Permissions for more information.

Resources

Okta resources are identified with either an Okta Resource Name (ORN) or an Okta API REST URL.

Note: Not all Okta resources have a corresponding Okta API.

Okta Resource Name (ORN)

The Okta Resource Name (ORN) uniquely identifies an Okta resource and has the following formats:

  • orn:{partition}:{service}:{yourOrgId}:{objectType}:{objectId}:contained_resources
  • orn:{partition}:{service}:{yourOrgId}:{objectType}:{appName}:{objectId}
  • orn:{partition}:{service}:{yourOrgId}:contained_resources
ORN variableDescription
{partition}The Okta environment partition specific to your org (oktapreview for Preview environments and okta for Production environments)
{service}The service that the resource belongs to
{yourOrgId}The identifier for the tenant that's using the service. This is typically your org ID.
{objectType}The resource object that belongs to the service category
{objectId}The specific object identifier for objectType. For example, if you want to define a specific group for your resource, use orn:{partition}:directory:{yourOrgId}:groups:{groupId}.
{appName}The key name that describes the app definition. For example, if you want to define all apps with a specific app definition for your resource, use orn:{partition}:idp:{yourOrgId}:apps:{appName}.
contained_resourceAn optional literal that targets all resources within the container resource (only for supported resources). For example, orn:{partition}:directory:{yourOrgId}:groups:{groupId}:contained_resources targets all users within a specific group.
{realmId}The identifier of the realm. For example, orn:{partition}:directory:{yourOrgId}:realms:{realmId}:users targets all users within a specific realm.

Supported resources

Directory service

ResourceORNOkta API REST URL
All usersorn:{partition}:directory:{yourOrgId}:usershttps://{yourOktaDomain}/api/v1/users
All groupsorn:{partition}:directory:{yourOrgId}:groupshttps://{yourOktaDomain}/api/v1/groups
A specific grouporn:{partition}:directory:{yourOrgId}:groups:{groupId}https://{yourOktaDomain}/api/v1/groups/{groupId}
All users within a specific grouporn:{partition}:directory:{yourOrgId}:groups:{groupId}:contained_resourceshttps://{yourOktaDomain}/api/v1/groups/{groupId}/users
All devicesorn:{partition}:directory:{yourOrgId}:deviceshttps://{yourOktaDomain}/api/v1/devices
All realmsorn:{partition}:directory:{yourOrgId}:realmshttps://{yourOktaDomain}/api/v1/realms
A specific realmorn:{partition}:directory:{yourOrgId}:realms:{realmId}https://{yourOktaDomain}/api/v1/realms/{realmId}
All users within a specific realmorn:{partition}:directory:{yourOrgId}:realms:{realmId}:users

Identity Provider service

ResourceORNOkta API REST URL
All appsorn:{partition}:idp:{yourOrgId}:appshttps://{yourOktaDomain}/api/v1/apps
All Identity Providers orn:{partition}:idp:{yourOrgId}:identity_providerhttps://{yourOktaDomain}/api/v1/idps
All apps of a specific typeorn:{partition}:idp:{yourOrgId}:apps:{appType}https://{yourOktaDomain}/api/v1/apps/?filter=name+eq+%22{targetAppType}%22
A specific apporn:{partition}:idp:{yourOrgId}:apps:{appType}:{appId}https://{yourOktaDomain}/api/v1/apps/{appId}
All authorization serversorn:{partition}:idp:{yourOrgId}:authorization_servershttps://{yourOktaDomain}/api/v1/authorizationServers
A specific authorization serverorn:{partition}:idp:{yourOrgId}:authorization_servers:{authorizationServerId}https://{yourOktaDomain}/api/v1/authorizationServers/{authorizationServerId}
All customizationsorn:{partition}:idp:{yourOrgId}:customizations
Entity risk policyorn:{partition}:idp:{yourOrgId}:policies:{policyType}https://{yourOktaDomain}/api/v1/policies?type={policyType} where {policyType} = ENTITY_RISK
Session protection policyorn:{partition}:idp:{yourOrgId}:policies:{policyType}https://{yourOktaDomain}/api/v1/policies?type={policyType} where {policyType} = POST_AUTH_SESSION

Workflow service

ResourceORNOkta API REST URL
All delegated flowsorn:{partition}:workflow:{yourOrgId}:flows
A specific delegated floworn:{partition}:workflow:{yourOrgId}:flows:{flowId}

Governance service

ResourceORNOkta API REST URL
All access certificationsorn:{partition}:governance:{orgId}:certifications
All access requestsorn:{partition}:governance:{orgId}:requests

Note: Governance resources are currently only supported as part of the standard resource sets. You can't use these to create or update other resource sets. See IAM-based standard roles.

Identity and Access Management service

ResourceORNOkta API REST URL
All Identity and Access Management resourcesorn:{partition}:iam:{orgId}:contained_resources

Shared Signals Framework service

ResourceORNOkta API REST URL
All SSF Receivers
orn:{partition}:ssf:{yourOrgId}:security_events_providershttps://{yourOktaDomain}/api/v1/security-events-providers

Support service

ResourceORNOkta API REST URL
All Okta Support cases opened by the adminorn:{partition}:support:{orgId}:cases