This workflow will auto-Approve/reject an access request based on some access request attributes. In situations where the access request doesn’t meet the workflow use-case, the request will be kept assigned to the individual for approval.
Why did we build this workflow?
We wanted a way to show automated governance, which is possible with SailPoint workflows and APIs.
In reality, some requests should be automatically approved based on some access request attributes like requester, requestFor, approver or accessItem. This workflow also allows the approvers to focus on the higher risk requests and not be burdened by the low-risk or pre-define approved requests.
What is the high-level design?
This solution is implemented as a workflow process: The workflow’s trigger is Scheduled Trigger (runs automatically based on CRON setting).
The workflow runs on an hourly schedule. It retrieves all pending approvals in the IdentityNow tenant, and then loops over the ones as per the defined condition in the loop node. The loop simply calls the Approve Access Request node, passing details of the request approval id, then approves it and with a comment.
Be aware of Workflow Limitations
- As of August '23, a workflow loop only supports 100-items.
- If you had > 100 pending approvals, some won’t be processed when the workflow runs. This isn’t an issue in demos, but something to remember.
- As of August '23, the fastest a scheduled workflow can run every 1-hours.
- In production, this could factor into the #-pending approvals, which could accumulate > 100
- In demos, you can either update the CRON statement (in the Scheduled Trigger of the master workflow) so it runs at about the right time in your demo, or you can run it manually in test mode after creating the access requests.
- Visibility into the loop/executions isn’t great.
Deploying Instructions
Note: Deploy on your sandbox tenant first, then perform all the testing and validate all the sandbox testing results before moving the workflow to the production.
- Download the Workflow json files (see below)
- Log into IdentityNow with Admin rights and create a Personal Access Token (PAT). In the PAT, assign the scope
sp-scopes-all
. This client ID/secret pair will be needed for all API calls in the child workflow. - Upload the Workflow json files into your IdentityNow tenant
- Edit the workflow in the Workflow Builder
- Update the schedule trigger with a proper Cron value as per the business need
- Change the HTTPRequest API URLs for the API calls to refer to your IdentityNow tenant
- Change the Client ID/Secret values (for the API calls) to use your PAT token.
- Update the loop list filter with the object.id and its value:
1. Objects can be:- requester.ID
- requestFor.id
- owner.id
- requestObject.id
- Update the Compare String node with the loop input object and its value as in the previous step
- Enable the workflow
Test Steps
- Generate a Test Execution for the workflow.
- Edit the workflow (select the workflow name and then press [Edit in Builder])
- On the workflow details page, press [Test Workflow]
- In the Workflow Test Input text area, replace the default text with the following text:
{}
- Verify the results
- Check the status of requests items for auto-approved and the comment.
Screen shots from the approved request in IdentityNow:
Here are the workflow definition file : “Access Requests Auto-Approve/Reject Workflow"
Access Requests Auto-approval Workflow.json (2.5 KB)