SailPoint IdentityNow - Approval & certification delegation management system
Fernando de los Ríos Sánchez
Advisory Solutions Consultant @ SailPoint | Technical Sales Cycle Delivery
IdentityNow integration series
This is the first article of a series about how to implement common business use cases leveraging IdentityNow's API and Event Trigger Service. The purpose of this series is helping SailPoint partners, customers and prospects alike finding ways to implement their business processes within IdentityNow's paradigm, a very different one compared to IdentityIQ. This is sometimes challenging for SailPoint IdentityIQ professionals who often try to apply the same strategies to IdentityNow and frustrate themselves. But don't worry, once you get the hang of it you'll discover a lot of possibilities you didn't know were there.
Approval & certification delegation management system
Description
This integration allows users to request a delegate for a period of time to forward their approvals and certifications to. The concept behind this integration is leveraging request on behalf IdentityNow feature to request a delegation entitlement for the delegate in question, for a period of time. This allows the requester to select the recipient of the delegation and a period of time for it. The underlying system, instead, will assign an auxiliary account with an entitlement to the requester to identify it as a delegation requester for a scheduled task to forward this identity’s pending approvals and certifications to the delegate, for as long as the delegation is valid.
The system uses IdentityNow Request Center and delegation data is self-contained. Externally, two Pipedream workflows support delegation request and approval forwarding.
Let me introduce you to the components of the system:
The system has two main blocks:
Note there’s no need to remove the delegation at all, the transform will return nothing when the delegation expires.
Prerequisites
Pipedream account and an IdentityNow tenant.
Limitations?
There’s no easy way to remove a delegation other than selecting a closer delegation date or selecting yourself as your own delegate.
Configuration
1. Create the Delegates Delimited Text source as follows:
2. Import delegate.csv as entitlement into the source (below).
id,name,displayName,created,description,modified,entitlements,groups,permission
delegate,delegate,Delegate,,Request on behalf of the delegate for as long as you want your approvals to be delegated,,,,s
3. Create the corresponding access profile and application for the previous entitlement. You better choose a dedicated owner for the access profile so you can properly filter requests later on:
4. Create this transform:
{
"name": "Current delegate",
"type": "dateCompare",
"attributes": {
"firstDate": {
"type": "firstValid",
"attributes": {
"values": [
{
"type": "accountAttribute",
"attributes": {
"sourceName": "Delegates",
"attributeName": "expirationDate"
}
},
"2022-01-01T00:00:00.000Z"
]
}
},
"secondDate": {
"type": "dateMath",
"attributes": {
"expression": "now",
"roundUp": true,
"input": {}
}
},
"operator": "gt",
"positiveCondition": {
"type": "accountAttribute",
"attributes": {
"sourceName": "Delegates",
"attributeName": "delegate"
}
},
"negativeCondition": "",
"requiresPeriodicRefresh": true
},
"internal": false
}
5. Extend identity schema with delegate attribute and set the previous transform:
6. Create an Access Request Decision subscription to point to Pipedream Set approval delegate workflow. You cannot finish the configuration until you deploy the workflow later on. For now, set this filter. Change it if you named your access profile differently: $.requestedItemsStatus[?(@.name == 'Delegate')]
7. Configure the following variables using your tenant information and personal access token:
8. Deploy Pipedream Set approval delegate workflow.
9. You need to adapt the following variables to match your needs:
10. Go back to step 4 subscription and fill out the integration URL with the workflow trigger URL:
11. Deploy Pipedream Process approval delegations workflow.
12. You need to adapt the following variables to match your needs:
You should be good to go. Try creating a new delegation request, have some pending approvals and trigger the Process approval delegations workflow to see those approval delegated for you.