REQUIREMENT
We want users to request entitlement C only if they already have entitlements A and B. A Separation of Duties (SoD) policy won’t help here, as it’s meant to block access—not require it. Similarly, organizational policies in ISC are designed to restrict access, not to enable it based on prerequisites.
SOLUTION
STEP 1: Create AD groups
Open ADUC
Create 2 AD groups (SGIdentityNow1 and SGIdentityNow2) and add the user to the 2 groups. Write down the distinguished names of the groups
Create another AD group (DLIdentityNow2) which will be the Target group
Sync up the information to SailPoint
STEP 2: Create Identity Pre-req attribute
Go to the Identity profile
Create an attribute called “SaganPrereq”
STEP 3: Create and upload Transform rule
Create the following Transform rule to check if user is member of the two groups created. If so then set SaganPrereq to complete else notcomplete. The group DN is case sensitive so it must match exactly what is in AD
{
"attributes": {
"group1Match": {
"attributes": {
"values": [
{
"type": "accountAttribute",
"attributes": {
"attributeName": "memberOf",
"sourceName": "MYAD",
"accountPropertyFilter": "(memberOf.contains(\"CN=SGIdentityNow1,OU=MYIdentityNow,OU=SailpointUsers,DC=mydomain,DC=net\"))"
}
},
"false"
]
},
"type": "firstValid"
},
"group2Match": {
"attributes": {
"values": [
{
"type": "accountAttribute",
"attributes": {
"attributeName": "memberOf",
"sourceName": "MYAD",
"accountPropertyFilter": "(memberOf.contains(\"CN=SGIdentityNow2,OU=MYIdentityNow,OU=SailpointUsers,DC=mydomain,DC=net\"))"
}
},
"false"
]
},
"type": "firstValid"
},
"value": "#set($out = 'noncomplete')#if($group1Match != 'false' && $group2Match != 'false')#set($out = 'complete')#end$out"
},
"type": "static",
"name": "MYSetSaganprereq"
}
Go to Postman
Go to Create Transform on the V3and Post the code
STEP 4: Update identity attribute
Go to Identity Profile
Update the seganprereq attribute with the transform rule uploaded
- Source: MYAD
- Attribute: memberOf
STEP 5: Create an access request profile
Create an access request for the third group created in Step 1.
Go to Access Profiles
Click Create New
- Name: MY Access DLIdentityNow2
- Owner: Myself
- Source: MYAD
- Manage Entitlements: DLIdentityNow2
- Access Request: Enabled
STEP 6: Create an access request segment
Go to Access Model/Segments
Click New
- Name: IdentityNow2 Prereq
- Description: Declare pre-req to request for DLIdentityNow2
- Click Define segment
- Attribute: Saganprereq
- Value: complete
- Access: MY Access DLIdentityNow2
- Enabled: Yes
STEP 7: Make a request
- Login as a user
- Go to request access and make sure you cannot see the Access Profile for DLIdentityNow2
- Add a user to the two in scope groups
- Aggregate the information to SailPoint MYAD
- Verify that saganprereq attribute is updated to “complete”
- Go to request access and make sure you can see the Access Profile for DLIdentityNow2