IGA 7.1.1

Access request

The following are Identity Governance API Access Request endpoints:

access-request/user

Requests against the /user endpoint

GET Get User

Allows end users to query against user population

Endpoint

{{idmRoot}}/access-request/user?queryString=john

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password
{{endUserPassword}}
Content-Type            application/json

Params

queryString             John
_fields
_pageSize
_pagedResultsOffser
_sortKeys

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/user?queryString=John' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password:
{{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Visible Requestees

Retrieves the list of user IDs that the authenticated user is allowed to see access for (themselves and their direct reports)

Endpoint

{{+idmRoot}}/access-request/user/requestees

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_fields
_pageSize
_pagedResultsOffser
_sortKeys

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/user/requestees' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get User BY Id

Allow end-users to query a specific user.

Endpoint

{{idmRoot}}/access-request/user/{{targetUserId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password
{{endUserPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/user/{{targetUserId}}' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'

access-request/item

Requests against the /item endpoint

GET Get Item

Allows end users to query individual items.

Endpoint

{{idmRoot}}/access-request/item?queryString=Admin

Headers

X-OpenIDM-Username  {{endUserUsername}}
X-OpenIDM-Password  {{endUserPassword}}
Content-Type      application/json

Params

queryString             Admin
_fields
_pageSize
_pagedResultsOffser
_sortKeys

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/item?queryString=Admin' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Item By Id

Allows end users to query a specific item.

Endpoint

{{idmRoot}}/access-request/{{itemId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type              application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/item/{{itemId}}' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
POST Get Request Fields For Item

Given a glossary item ID, return the fields that can be submitted with a request for that item.

Endpoint

{{idmRoot}}/access-request/item/fields/{{itemId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Body raw

{}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/item/fields/{{itemId}}' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{}'
POST Get Request Fields For Items

Given a list of glossary item IDs, return the fields that can be submitted with a request for those items.

Endpoint

{{idmRoot}}/access-request/item/fields

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Body raw

{
	"itemIds": [
		"e7997f97-cd00-4f16-b566-01879185eb2e",
		"c336c6a5-da19-4078-8ba5-3a297c605564"
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/item/fields' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"itemIds": [
		"e7997f97-cd00-4f16-b566-01879185eb2e",
		"c336c6a5-da19-4078-8ba5-3a297c605564"
	]
}'

access-request/bundle

Requests against the /bundle endpoint.

GET Get Bundle

Allows end users to query requestable bundles.

Endpoint

{{idmRoot}}/access-request/bundle?queryString=Admin

Headers

X-OpenIDM-Username  {{endUserUsername}}
X-OpenIDM-Password  {{endUserPassword}}
Content-Type        application/json

Params

queryString         Admin
_fields
_pageSize
_pagedResultsOffser
_sortKeys

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/bundle?queryString=Admin' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Bundle By Id

Allows end users to query a specific requestable bundle.

Endpoint

**{{idmRoot}}/access-request/bundle/{{bundleId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/bundle/{{bundleId}}' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
POST Create Bundle

Allows end users to query a specific requestable bundle.

Endpoint

**{{idmRoot}}/access-request/bundle/{{bundleId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Body raw

{
	"name": "Administrator Bundle",
	"description": "Collection of administrator roles",
	"class": "requestable-item-bundle",
	"constraints": {},
	"itemIds": [
		"{{itemId}}",
		"{{itemId2}}"
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/bundle' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"name": "Administrator Bundle",
	"description": "Collection of administrator roles",
	"class": "requestable-item-bundle",
	"constraints": {},
	"itemIds": [
		"{{itemId}}",
		"{{itemId2}}"
	]
}'
POST Update Bundle

Update an existing bundle definition.

Endpoint

**{{idmRoot}}/access-request/bundle/{{bundleId}}?_action=update

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Params Body raw

_action             update

Body raw

{
	"_id": "{{bundleId}}",
	"name": "Administrator Bundle",
	"description": "Collection of administrator roles",
	"class": "requestable-item-bundle",
	"constraints": {},
	"itemIds": [
		"{{itemId}}",
		"{{itemId2}}"
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/bundle/{{bundleId}}?_action=update' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"_id": "{{bundleId}}",
	"name": "Administrator Bundle",
	"description": "Collection of administrator roles",
	"class": "requestable-item-bundle",
	"constraints": {},
	"itemIds": [
		"{{itemId}}",
		"{{itemId2}}"
	]
}'
DEL Delete Bundle

Allows end users to delete a specific requestable bundle.

Endpoint

**{{idmRoot}}/access-request/bundle/{{bundleId}}

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Body raw

{}

Example Request

curl --location -g --request DELETE '{{idmRoot}}/access-request/bundle/{{bundleId}}' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{}'

access-request/requestFields

Requests against the /requestFields endpoint.

GET Get Request Fields

Query for defined request fields that can be assigned to any requestable item.

Endpoint

{{idmRoot}}/access-request/requestFields?pageSize=10&pageNumber=0

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

pageSize                10
pageNumber              0
sortBy
q                       (filter term)
name                    (match name property)

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/requestFields?pageSize=10&pageNumber=0' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json'
POST Create Request Field

Create a request field that can be assigned to any requestable item.

Endpoint

{{idmRoot}}/access-request/requestFields?_action=create

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             create

Body raw

{
   "name": "Justification",
   "description": "Reason for requesting this access",
   "inputType": "text",
   "required": true
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/requestFields?_action=create' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "name": "Justification",
   "description": "Reason for requesting this access",
   "inputType": "text",
   "required": true
}'
POST Create Request Field - 2

Create a request field that can be assigned to any requestable item.

Endpoint

{{idmRoot}}/access-request/requestFields?_action=create

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             create

Body raw

{
   "name": "Location",
   "description": "Choose the location at which you are working",
   "inputType": "radio",
   "inputOptions": [
   		"New York",
   		"Miami"
   	],
   "required": true
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/requestFields?_action=create' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "name": "Location",
   "description": "Choose the location at which you are working",
   "inputType": "radio",
   "inputOptions": [
   		"New York",
   		"Miami"
   	],
   "required": true
}'
POST Update Request Field

Update a request field that can be assigned to any requestable item.

Endpoint

{{idmRoot}}/access-request/requestFields//{{requestfieldid}}?_action=update

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             update

Body raw

{
   "name": "Justification",
   "description": "Reason for requesting this access",
   "inputType": "text",
   "required": true
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/requestFields/{{requestfieldid}}?_action=update' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "name": "Justification",
   "description": "Reason for requesting this access",
   "inputType": "text",
   "required": true
}'
POST Delete Request Field

Delete a request field that can be assigned to any requestable item.

Endpoint

{{idmRoot}}/access-request/requestFields//{{requestfieldid}}?_action=update

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             delete

Body raw

{
   "fieldIds": [
   		"{{requestfieldid}}"
   	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/requestFields?_action=delete' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "fieldIds": [
   		"{{requestfieldid}}"
   	]
}'

access-request/requestable

Requests against the /requestable endpoint.

GET Get Requestable Item

Query requestable item (item or bundle) by its ID.

Endpoint

{{idmRoot}}/access-request/requestable/{{itemId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/requestable/{{itemId}}' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Requestable Items

Query requestable items (item or bundle).

Endpoint

{{idmRoot}}/access-request/requestable

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

userId              Check the requestable item’s against the user to see if they are assigned to them.

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/requestable' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'

access-request/approval

Requests against the /approval endpoint.

GET Get Approval

Get an approval task its ID.

Endpoint

{{idmRoot}}/access-request/approval/{{approvalTaskId}}

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/approval/{{approvalTaskId}}' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Approvals

Get approval tasks assigned to user.

Endpoint

{{idmRoot}}/access-request/approval?pageSize=10&pageNumber=0

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

pageSize                10
pageNumber              0
_fields
sortBy
requesteeId
requesterId
itemId
id

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/approval?pageSize=10&pageNumber=0' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Approval Count

Get current number of active approval tasks assigned to user.

Endpoint

{{idmRoot}}/access-request/approval?getResultCount=true

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_fields
sortBy
requesteeId
requesterId
itemId
getResultCount       true

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/approval?getResultCount=true' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Approvals - Admin

Get approval tasks, as administrator.

Endpoint

{{idmRoot}}/access-request/approval?pageSize=10&pageNumber=0

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Params

pageSize                10
pageNumber              0
_fields
sortBy
approverId
requesterId
requesteeId
itemId
id

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/approval/admin?pageSize=10&pageNumber=0' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json'
POST Create Approval Task

Manually create an approval task. For use within custom workflows.

Endpoint

{{idmRoot}}/access-request/requestFields//{{requestFieldId}}?_action=update

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Body raw

{
   "requestId": "{{requestId}}",
   "itemIds":[
	  "{{itemId}}"
   ],
   "approverId": "{{approverId}}",
   "workflowTaskId": "{{workflowTaskId}}"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/requestFields?_action=delete' \
curl --location -g --request POST '{{idmRoot}}/access-request/approval' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "requestId": "{{requestId}}",
   "itemIds":[
	  "{{itemId}}"
   ],
   "approverId": "{{approverId}}",
   "workflowTaskId": "{{workflowTaskId}}"
}'
POST Get Autonomous Identity Recommendations For Use

Queries Autonomous Identity to get recommendations for entitlements for the given user.

Endpoint

{{idmRoot}}/access-request/approval?_action=getRecommendations

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Params

_action             getRecommendations

Body raw

{
   "userId": "{{requestId}}",
   "entitlements":[
	  "{{itemId}}"
   ]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/approval?_action=getRecommendations' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "userId": "{{requestId}}",
   "entitlements":[
	  "{{itemId}}"
   ]
}'
GET Get Approval Repository Object

Directly read an approval task from the repository. Also, supports PUT and DELETE operations.

Endpoint

{{idmRoot}}/repo/governance/approvalTask/
{{approvalTaskId}}

Headers

X-OpenIDM-Username      {{idmAdminUsername}}
X-OpenIDM-Password      {{idmAdminPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/repo/governance/approvalTask/{{approvalTaskId}}' \
--header 'X-OpenIDM-Username: {{idmAdminUsername}}' \
--header 'X-OpenIDM-Password: {{idmAdminPassword}}' \
--header 'Content-Type: application/json'
GET Query Approval Repository Objects

Query the repository objects for approval tasks directly.

Endpoint

{{idmRoot}}/repo/governance/approvalTask?_queryFilter=true

Headers

X-OpenIDM-Username      {{idmAdminUsername}}
X-OpenIDM-Password      {{idmAdminPassword}}
Content-Type            application/json

Example Request

_queryFilter        true

Example Request

curl --location -g --request GET '{{idmRoot}}/repo/governance/approvalTask?_queryFilter=true' \
--header 'X-OpenIDM-Username: {{idmAdminUsername}}' \
--header 'X-OpenIDM-Password: {{idmAdminPassword}}' \
--header 'Content-Type: application/json'

access-request/request

Requests against the /request endpoint.

POST Cancel Request(s)

As an access request adminstrator, requester, or requestee, cancel the requests provided.

Endpoint

{{idmRoot}}/access-request/request?_action=cancel

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Params

_action                 cancel

Body raw

{
	"requestIds": [
		"{{requestId}}"
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=cancel' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"requestIds": [
		"{{requestId}}"
	]
}'
POST Create Request

Create a request for access.

Endpoint

{{idmRoot}}/access-request/request

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Body raw

{
   "userIds":[
      "1sasdaf97-cd00-4f16-b566-01879185eb2e"
   ],
   "items":[
      {
         "itemId":"{{itemId}}",
         "requestType":"add",
         "fields": {

         }
      }
   ],
   "comment": "Comment"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "userIds":[
      "1sasdaf97-cd00-4f16-b566-01879185eb2e"
   ],
   "items":[
      {
         "itemId":"{{itemId}}",
         "requestType":"add",
         "fields": {

         }
      }
   ],
   "comment": "Comment"
}'
POST Create Request Policy Check

Given a create request payload, check whether the request would result in any policy violations.

Endpoint

{{idmRoot}}/access-request/request/policy

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Body raw

{
   "userIds":[
      "222"
   ],
   "items":[
      {
         "itemId":"managed/role/2007",
         "requestType":"add"
      }
   ]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request/policy' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "userIds":[
      "222"
   ],
   "items":[
      {
         "itemId":"managed/role/2007",
         "requestType":"add"
      }
   ]
}'
GET Get Requests

Get requests for the user.

Endpoint

{{idmRoot}}/access-request/request?status=active&pageSize=10&pageNumber=0

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

status                  active
pageSize                10
pageNumber              0
sortBy
approverId
requesteeId
requesterId
itemId
id

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/request?status=active&pageSize=10&pageNumber=0' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
GET Get Requests - Admin

Get requests as an administrator.

Endpoint

{{idmRoot}}/access-request/request/admin?status=active&pageSize=10&pageNumbe

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Params

status                  active
pageSize                10
pageNumber              0
sortBy
approverId
requesteeId
requesterId
itemId
id

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/request/admin?status=active&pageSize=10&pageNumber=' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json'
GET Get Request

Get requests by ID..

Endpoint

{{idmRoot}}/access-request/request/{{requestId}}

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/request/{{requestId}}' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json'
GET Get Request Repository Object

Read a request object directly from the repository. Also, supports PUT and DELETE operations.

Endpoint

{{idmRoot}}/repo/governance/request?_queryFilter=true

Headers

X-OpenIDM-Username      {{idmAdminUsername}}
X-OpenIDM-Password      {{idmAdminPassword}}
Content-Type            application/json

Params

_queryFilter         true

Example Request

curl --location -g --request GET '{{idmRoot}}/repo/governance/request?_queryFilter=true' \
--header 'X-OpenIDM-Username: {{idmAdminUsername}}' \
--header 'X-OpenIDM-Password: {{idmAdminPassword}}' \
--header 'Content-Type: application/json'
GET Query Request Repository Objects

Query repository for request objects directly.

Endpoint

{{idmRoot}}/repo/governance/request?_queryFilter=true

Headers

X-OpenIDM-Username      {{idmAdminUsername}}
X-OpenIDM-Password      {{idmAdminPassword}}
Content-Type            application/json

Params

_queryFilter         true

Example Request

curl --location -g --request GET '{{idmRoot}}/repo/governance/request?_queryFilter=true' \
--header 'X-OpenIDM-Username: {{idmAdminUsername}}' \
--header 'X-OpenIDM-Password: {{idmAdminPassword}}' \
--header 'Content-Type: application/json'
POST Reassign Approval Task

Reassign a task to a new user/group

Endpoint

{{idmRoot}}/access-request/request?_action=reassign

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action         reassign

Body raw

{
	"approvalIds": [
		"{{approvalTaskId}}"
	],
	"newApproverId": "managed/user/211"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=reassign' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"approvalIds": [
		"{{approvalTaskId}}"
	],
	"newApproverId": "managed/user/211"
}'
POST Consult Approval Task

Add a consulting user/group to the approval task

Endpoint

{{idmRoot}}/access-request/request?_action=consult

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action               consult

Body raw

{
	"approvalIds": [
		"{{approvalTaskId}}"
	],
	"consultId": "managed/user/235"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=consult' \
--header 'X-OpenIDM-Username: {{endUserPassword}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"approvalIds": [
		"{{approvalTaskId}}"
	],
	"consultId": "managed/user/235"
}'
POST Cancel Consult Approval Task

Cancel a consulting user/group to the approval task

Endpoint

{{idmRoot}}/access-request/request?_action=cancelconsult

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action               cancelconsult

Body raw

{
	"approvalIds": [
		"{{approvalTaskId}}"
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=cancelconsult' \
--header 'X-OpenIDM-Username: {{endUserPassword}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"approvalIds": [
		"{{approvalTaskId}}"
	]
}'
POST Upload File To Request

Upload file to a given request. Optionally provide itemIds within the request that the file are specific to.

Endpoint

{{idmRoot}}/access-request/request?_action=upload

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             upload

Body raw

{
	"requestId": "{{requestId}}",
	"itemIds": [
		"{{itemId}}"
	],
	"fileName": "report.pdf",
	"fileType": "text/plain",
	"content": "dGhpcyBpcyBhIGZpbGU="
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=upload' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"requestId": "{{requestId}}",
	"itemIds": [
		"{{itemId}}"
	],
	"fileName": "report.pdf",
	"fileType": "text/plain",
	"content": "dGhpcyBpcyBhIGZpbGU="
}'
GET Download File From Request

Download a file from a request given a request ID and file name.

Endpoint

{{idmRoot}}/access-request/request/download?fileName&requestId

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

fileName           Name of file
requestId          ID of request file is attached to

Example Request

curl --location -g --request GET '{{idmRoot}}/access-request/request/download?fileName=&requestId=' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json'
POST Download File From Request

Download a file from a given request

Endpoint

{{idmRoot}}/access-request/request?_action=download

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             download

Body raw

{
	"requestId": "{{requestId}}",
	"fileName": "report.pdf"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=download' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"requestId": "{{requestId}}",
	"fileName": "report.pdf"
}'
POST Delete File From Request

Remove a file from a given request

Endpoint

{{idmRoot}}/access-request/request?_action=removeFile

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             removeFile

Body raw

{
	"requestId": "{{requestId}}",
	"fileName": "report.pdf"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=removeFile' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"requestId": "{{requestId}}",
	"fileName": "report.pdf"
}'
POST Comment on Request

Comment on a request. Optionally provide the specific items within the request that this comment will apply to.

Endpoint

{{idmRoot}}/access-request/request?_action=comment

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             removeFile

Body raw

{
	"requestId": "{{requestId}}",
	"itemIds": [
		"{{itemId}}"
	],
	"comment": "Comment",
	"isHidden": false
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request?_action=comment' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"requestId": "{{requestId}}",
	"itemIds": [
		"{{itemId}}"
	],
	"comment": "Comment",
	"isHidden": false
}'
POST Complete Approval Task

Complete an approval task as the approver. This endpoint with action 'complete' requires individual item decisions to be included in the request body.

Endpoint

{{idmRoot}}/access-request/request/approval?_action=complete

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             complete

Body raw

{
	"approvalId": "{{approvalTaskId}}",
	"approvalData": [
		{
			"itemId": "{{itemId}}",
			"outcome": "approved"
		}
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request/approval?_action=complete' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"approvalId": "{{approvalTaskId}}",
	"approvalData": [
		{
			"itemId": "{{itemId}}",
			"outcome": "approved"
		}
	]
}'
POST Complete Approval Task - Approval All

Complete an approval task as the approver. This endpoint with action 'complete' requires individual item decisions to be included in the request body.

Endpoint

{{idmRoot}}/access-request/request/approval?_action=approved

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             approval

Body raw

{
	"approvalId": "{{approvalTaskId}}",
	"comment": "Comment"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request/approval?_action=approved' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"approvalId": "{{approvalTaskId}}",
	"comment": "Comment"
}'
POST Complete Approval Task - Reject All

Complete an approval task, rejecting all of the task’s items.

Endpoint

{{idmRoot}}/access-request/request/approval?_action=rejected

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             rejected

Body raw

{
	"approvalId": "{{approvalTaskId}}",
	"comment": "Comment"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request/approval?_action=rejected' \
--header 'X-OpenIDM-Username: {{endUserUsername}}' \
--header 'X-OpenIDM-Password: {{endUserPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"approvalId": "{{approvalTaskId}}",
	"comment": "Comment"
}'
POST Update Request’s Items

Complete an approval task, rejecting all of the task’s items.

Endpoint

{{idmRoot}}/access-request/request/{{requestId}}?_action=asdasd

Headers

X-OpenIDM-Username      {{endUserUsername}}
X-OpenIDM-Password      {{endUserPassword}}
Content-Type            application/json

Params

_action             asdasd

Body raw

{
	"items": [
        {
            "itemId": "40b83cb6-1749-48eb-9c89-2a3b1fae71ab",
            "fields": [],
            "timesApproved": 2,
            "outcome": "provisioned"
        }
	]
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/request/{{requestId}}?_action=asdasd' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"items": [
        {
            "itemId": "40b83cb6-1749-48eb-9c89-2a3b1fae71ab",
            "fields": [],
            "timesApproved": 2,
            "outcome": "provisioned"
        }
	]
}'

access-request/notification

Requests against the /notification endpoint.

POST Send Notification

As an access request administrator, send any of the defined Request notifications. To be used within custom workflows if notifications need to be sent at a certain juncture.

Endpoint

{{idmRoot}}/access-request/notification/APPROVAL_TASK_CREATED/{{approvalTaskId}}

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Body raw

{}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/notification/APPROVAL_TASK_CREATED/{{approvalTaskId}}' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{}'

access-request/provision

Requests against the /provision endpoint.

POST Provision Access From Request

As an access request administrator, send any of the defined Request notifications. To be used within custom workflows if notifications need to be sent at a certain juncture.

Endpoint

{{idmRoot}}/access-request/provision

Headers

X-OpenIDM-Username      {{arAdminUsername}}
X-OpenIDM-Password      {{arAdminPassword}}
Content-Type            application/json

Body raw

{
	"requestId": "{{requestId}}",
	"itemId": "{{itemId}}",
	"requestType": "add"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/access-request/provision' \
--header 'X-OpenIDM-Username: {{arAdminUsername}}' \
--header 'X-OpenIDM-Password: {{arAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"requestId": "{{requestId}}",
	"itemId": "{{itemId}}",
	"requestType": "add"
}'

commons/glossary

Requests against the commons/glossary endpoint.

GET Get Workflow Definitions

Query IDM for the available workflow definitions. Used for front-end forms.

Endpoint

{{idmRoot}}/commons/workflow

Headers

X-OpenIDM-Username      {{idmAdminUsername}}
X-OpenIDM-Password      {{idmAdminPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/commons/workflow' \
--header 'X-OpenIDM-Username: {{idmAdminUsername}}' \
--header 'X-OpenIDM-Password: {{idmAdminPassword}}' \
--header 'Content-Type: application/json'
GET Get Glossary Entry By ID

Read a specific glossary entry.

Endpoint

{{idmRoot}}/commons/glossary/{{glossaryEntryId}}

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password      {{glossaryAdminPassword}}
Content-Type            application/json

Example Request

curl --location -g --request GET '{{idmRoot}}/commons/glossary/{{glossaryEntryId}}' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json'
DEL Delete Glossary Entry By ID

Delete a specific glossary entry.

Endpoint

{{idmRoot}}/commons/glossary/{{glossaryEntryId}}

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password      {{glossaryAdminPassword}}
Content-Type            application/json

Body raw

{
	"userId": "c336c6a5-da19-4078-8ba5-3a297c605564",
	"attributes": [
		{
			"attribute": "roles",
			"value": "managed/role/2007",
			"action": "add"
		}
	]
}

Example Request

curl --location -g --request DELETE '{{idmRoot}}/commons/glossary/{{glossaryEntryId}}' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"userId": "c336c6a5-da19-4078-8ba5-3a297c605564",
	"attributes": [
		{
			"attribute": "roles",
			"value": "managed/role/2007",
			"action": "add"
		}
	]
}'
POST Update Glossary Entry

Update a specific glossary entry.

Endpoint

{{idmRoot}}/commons/glossary/{{glossaryEntryId}}?_action=update

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password      {{glossaryAdminPassword}}
Content-Type            application/json

Params

_action             update

Body raw

{
    "_rev": "2",
    "requestable": true,
    "approvers": [
        "manager",
        "entitlementOwner"
    ],
    "displayName": "Cloud Infrastructure Approver!",
    "description": "Grants user access required for Cloud Infrastructure Approver",
    "objectId": "managed/role/2070",
    "riskLevel": 1,
    "constraints": {
        "riskLevel": {
            "type": "integer"
        },
        "highRiskApprover": {
            "type": "managed object id"
        },
        "description": {
            "type": "string"
        },
        "entitlementOwner": {
            "type": "managed object id"
        },
        "approvers": {
            "type": "array"
        },
        "requestable": {
            "type": "boolean"
        }
    },
    "class": "object",
    "entitlementOwner": "managed/role/2070",
    "order": []
}

Example Request

curl --location -g --request POST '{{idmRoot}}/commons/glossary/{{glossaryEntryId}}?_action=update' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "_rev": "2",
    "requestable": true,
    "approvers": [
        "manager",
        "entitlementOwner"
    ],
    "displayName": "Cloud Infrastructure Approver!",
    "description": "Grants user access required for Cloud Infrastructure Approver",
    "objectId": "managed/role/2070",
    "riskLevel": 1,
    "constraints": {
        "riskLevel": {
            "type": "integer"
        },
        "highRiskApprover": {
            "type": "managed object id"
        },
        "description": {
            "type": "string"
        },
        "entitlementOwner": {
            "type": "managed object id"
        },
        "approvers": {
            "type": "array"
        },
        "requestable": {
            "type": "boolean"
        }
    },
    "class": "object",
    "entitlementOwner": "managed/role/2070",
    "order": []
}'
POST Create Glossary Entry

Create a new glossary entry.

Endpoint

{{idmRoot}}/commons/glossary?_action=create

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password        {{glossaryAdminPassword}}
Content-Type**            application/json

Params

_action             create

Body raw

{
   "class":"identity-value",
   "constraints":{
      "_id":{
         "type":"id"
      },
      "_rev":{

      },
      "class":{
         "type":"string"
      },
      "constraints":{
         "type":"object"
      },
      "attributeName":{
         "type":"string"
      },
      "attributeValue":{

      },
      "requestFields":{
         "type":"array"
      },
      "description":{
         "type":"string"
      }
   },
   "attributeName":"jobCode",
   "attributeValue":"B456",
   "requestFields":[

   ],
   "description":"Marketing job code"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/commons/glossary?_action=create' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "class":"identity-value",
   "constraints":{
      "_id":{
         "type":"id"
      },
      "_rev":{

      },
      "class":{
         "type":"string"
      },
      "constraints":{
         "type":"object"
      },
      "attributeName":{
         "type":"string"
      },
      "attributeValue":{

      },
      "requestFields":{
         "type":"array"
      },
      "description":{
         "type":"string"
      }
   },
   "attributeName":"jobCode",
   "attributeValue":"B456",
   "requestFields":[

   ],
   "description":"Marketing job code"
}'
GET Query Glossary Entries

Query entries in the governance glossary

Endpoint

{{idmRoot}}/commons/glossary

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password      {{glossaryAdminPassword}}
Content-Type            application/json

Params

queryFilter

Example Request

curl --location -g --request GET '{{idmRoot}}/commons/glossary' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json'
POST Create Glossary Entry

Create a new glossary entry.

Endpoint

{{idmRoot}}/commons/glossary?_action=create

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password      {{glossaryAdminPassword}}
Content-Type            application/json

Params

_action             create

Body raw

{
   "class":"identity-value",
   "constraints":{
      "_id":{
         "type":"id"
      },
      "_rev":{

      },
      "class":{
         "type":"string"
      },
      "constraints":{
         "type":"object"
      },
      "attributeName":{
         "type":"string"
      },
      "attributeValue":{

      },
      "requestFields":{
         "type":"array"
      },
      "description":{
         "type":"string"
      }
   },
   "attributeName":"jobCode",
   "attributeValue":"B456",
   "requestFields":[

   ],
   "description":"Marketing job code"
}

Example Request

curl --location -g --request POST '{{idmRoot}}/commons/glossary?_action=create' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
   "class":"identity-value",
   "constraints":{
      "_id":{
         "type":"id"
      },
      "_rev":{

      },
      "class":{
         "type":"string"
      },
      "constraints":{
         "type":"object"
      },
      "attributeName":{
         "type":"string"
      },
      "attributeValue":{

      },
      "requestFields":{
         "type":"array"
      },
      "description":{
         "type":"string"
      }
   },
   "attributeName":"jobCode",
   "attributeValue":"B456",
   "requestFields":[

   ],
   "description":"Marketing job code"
}'
GET Query Glossary Entries

Query entries in the governance glossary

Endpoint

{{idmRoot}}/commons/glossary

Headers

X-OpenIDM-Username      {{glossaryAdminUsername}}
X-OpenIDM-Password      {{glossaryAdminPassword}}
Content-Type            application/json

Params

queryFilter

Example Request

curl --location -g --request GET '{{idmRoot}}/commons/glossary' \
--header 'X-OpenIDM-Username: {{glossaryAdminUsername}}' \
--header 'X-OpenIDM-Password: {{glossaryAdminPassword}}' \
--header 'Content-Type: application/json'
POST Check User Update Against Policies

Given a userId and a list of attribute changes (in the format of attribute, value, and action), check the system’s active policies against the user if their access was changed via the list of attribute changes.

This is an Access Review endpoint, available with the release of Access Request 2.0

+

Endpoint

{{idmRoot}}/governance/policyScan?_action=check

+

Headers

X-OpenIDM-Username      {{reviewAdminUsername}}
X-OpenIDM-Password      {{reviewAdminPassword}}
Content-Type            application/json

+

Params

_action              check

+

Body raw

{
	"userId": "c336c6a5-da19-4078-8ba5-3a297c605564",
	"attributes": [
		{
			"attribute": "roles",
			"value": "managed/role/2007",
			"action": "add"
		}
	]
}

+

Example Request

curl --location -g --request POST '{{idmRoot}}/governance/policyScan?_action=check' \
--header 'X-OpenIDM-Username: {{reviewAdminUsername}}' \
--header 'X-OpenIDM-Password: {{reviewAdminPassword}}' \
--header 'Content-Type: application/json' \
--data-raw '{
	"userId": "c336c6a5-da19-4078-8ba5-3a297c605564",
	"attributes": [
		{
			"attribute": "roles",
			"value": "managed/role/2007",
			"action": "add"
		}
	]
}'
Copyright © 2010-2023 ForgeRock, all rights reserved.