[BETA] Okta Identity Governance API

Okta Identity Governance is a SaaS-delivered, converged and intuitive Identity and Access management platform. Use it to simplify and manage your identity and access lifecycles across multiple systems and improve the overall security of your company.

Okta Identity Governance builds upon the existing Okta Life Cycle Management products, such as Provisioning and Workflows, which help enterprises simplify access fulfillment and entitlement tasks throughout a user’s identity lifecycle.

Domain model

Nouns

RESOURCERESOURCE-PROVIDERCAMPAIGNSREVIEWSREQUEST-CONDITIONSREQUEST-SEQUENCESCATALOG-ENTRIESREQUESTSprovided bygenerateusegenerateallows

Noun API reference

Relationships

RESOURCECAMPAIGNREVIEWREQUEST-CONDITIONCATALOG-ENTRY
RESOURCEGRANTENTITLEMENT-BUNDLEENTITLEMENTREVIEWREQUEST (v1)CAMPAIGNREQUEST-CONDITIONShas manyhas manyhas manyhas manyhas manyreferenced byreferenced by
CAMPAIGNsettingremediationSettingssettingresourceSettingssettingreviewerSettingssettingscheduleSettingssettingnotificationSettingssettingprincipalScopeSettingsSTATUSREVIEWShasgenerates
REVIEWCAMPAIGNRESOURCEPRINCIPALREVIEWERDECISIONREMEDIATIONHISTORYcreated byhashashasmade by reviewerhashas
REQUEST-CONDITIONsettingsresourceSettingssettingsrequesterSettingssettingsaccessSettingssettingsapprovalSettingsCATALOG-ENTRYgenerates
ENTRYRESOURCECHILD-ENTRYACCESS-SCOPEGROUPENTITLEMENT-BUNDLEENTITLEMENT-VALUErepresents onecould have childrenrelated torelated toviaviavia

Governance Engine

Resource - "An object that may be governed"

RESOURCEstringresourceId0oa...,00g...,00e...enumresourceTypeAPP, GROUPstringnameSalesforce instance, Engineers, Salesforce AdminstringdescriptionThis instance..., This group...ENTITLEMENTSwhen resourceType = APP

Entitlements - A collection of entitlement with corresponding allowed values

ENTITLEMENTstringidstringnamestringdisplayNamestringdescriptionbooleanmultiValuebooleanrequiredENTITLEMENT-VALUEstringidstringdisplayNamestringvaluestringdescriptionRESOURCEhas allbelongs to parent

Entitlement Bundle

ENTITLEMENT-BUNDLEstringnamestringdescriptionENTITLEMENTSRESOURCEENTITLEMENT-VALUEhas somebelongs towith selectedbelongs to

Grant

GRANTenumgrantTypeenumactionsettingsscheduleSettingsenumstatusTARGET-PRINCIPALRESOURCEstringtypestringexternalIdENTITLEMENTSENTITLEMENT-BUNDLEgranted tofor a targetmay havemay have

Principal Entitlement : Assigned entitlement with values for a Principal

PRINCIPAL-ENTITLEMENTstringidstringnamestringdisplayNamestringdescriptionbooleanmultiValuebooleanrequiredENTITLEMENT-VALUEstringidstringdisplayNamestringvaluestringdescriptionRESOURCETARGET-PRINCIPALwithbelongs to parentassigned to

Governance object lifecycles

Governance objects have lifecycles that are driven by system and user interactions.

When using governance APIs, it is important to understand the potential status values of objects, and how they transition from one lifecycle state to another.

Campaign

Campaign status lifecycle

/launch
background job
background job
background job
/end
background purger
/delete
/delete
404 Not found
SCHEDULED
LAUNCHING
ACTIVE
ERROR
COMPLETED

The following lifecycle operations are available on single Request Types.

Request condition

Request condition lifecycle

POST
/activate
PATCH
DELETE
PATCH
/deactivate
PATCH
DELETE
404 Not found
new condition
INACTIVE
ACTIVE
INVALID

A request condition may transition to INVALID status if:

  • The resource is deleted.
  • All groups referenced in its requesterSettings have been deleted.
  • All groups referenced in its accessScopeSettings have been deleted.
  • All entitlement bundles referenced in its accessScopeSettings have been deleted.
  • All entitlements referenced in its accessScopeSettings have been deleted.
  • The resource opted out of governance engine, but its accessScopeSettings reference an entitlement bundle or entitlement.

The transition to INVALID status may occur when:

  • The system notices any of the aforementioned states during a related API operation (Create request, etc...)
  • Periodically when request condition integrity is checked

Request

Request.status lifecycle

POST
system action, request available in Inbox
system action, request invalid
required approvals approved in Inbox
any approval rejects in Inbox
requester cancels in Inbox
new request
SUBMITTED
PENDING
REJECTED
APPROVED
DENIED
CANCELED

Request.grantStatus lifecycle

Only applicable if Request.status === 'APPROVED'

system action
assign to app success
add to group success
create grant success
assign to app failure
add to group failure
create grant failure
certain cases (app group?)
Request.status==APPROVED
Request.grantStatus=PENDING
Request.grantStatus=GRANTED
Request.grantStatus=FAILED
Request.grantStatus=MANUAL_GRANT_REQUIRED

Request.revocationStatus lifecycle

Only applicable if Request.accessDuration is defined.

system action
accessDuration exceeded, successful access revocation
accessDuration exceeded, failed access revocation
Request.grantStatus==GRANTED
Request.revocationStatus=PENDING, revocationScheduled=TIMESTAMP
Request.revocationStatus=REVOKED
Request.revocationStatus=FAILED

Access Request v1 (Request types)

REQUEST-TYPES (v1)REQUESTS (v1)OWNER (v1)allowadministrated by
REQUEST-TYPE (v1)REQUEST (v1)OWNER (v1)
REQUEST-TYPE (v1)settingapprovalSettingssettingrequestSettingssettingresourceSettingsOWNER (v1)REQUEST (v1)administrated byallows
REQUEST (v1)REQUEST-TYPE (v1)CREATOR (v1)REQUESTER (v1)REQUESTER-FIELD-VALUES (v1)APPROVAL (v1)APPROVER (v1)DECISION (v1)APPROVER-FIELD-VALUES (v1)ACTION (v1)RESOURCEallowed bycreated-byrequested-byprovided by requestermay requirehasmade by approverprovided by approvermay generatehas
OWNER (v1)TEAM (v1)MEMBER (v1)OKTA-USERishasis

Request Type

Request Type status lifecycle

/publish
DELETE /request-types/:requestTypeId
/un-publish
Invalid state detected during an operation
404 Not found
DRAFT
ACTIVE
DISABLED

The only terminal state for a Request Type is when the resource can no longer be found.

A DISABLED Request Type may be repaired through the administrative portal and re-enter a DRAFT or ACTIVE state.

The following lifecycle operations are available on single Request Types.

V1 Request

V1 Request.requestStatus lifecycle

Moved to pending in UI
Moved to resolved in UI
OPEN
PENDING
RESOLVED

A Request progresses in its lifecycle state based on team or administrative actions on a variety of channels, including:

  • Access Request portal
  • Slack
  • Microsoft teams

The following lifecycle operations are available on single Request.