We have a requirement to revoke only requestable roles and access profiles for terminated identities via Workflow. I’m using below API search query in "HTTP Request " operation to get the same. Unfortunately, it’s not returning me any identities. Could someone please help?
Take a look at the /requestable-objects endpoint in SailPoint’s APIs. It lists the available requestable APs and Roles for a particular identity AND lets you know if they’re assigned. You could use this and loop through the assigned ones to revoke them in your workflow.
Thanks @liamkokeeffe . Can we pass dynamic values in request parameters? As the HTTP request is inside the loop, want to know how to pass the identity id for the GET request
revocable: true, does this means that all are requestable ones?
We have a scenario where the roles are getting revoked but access profile which was part of that role still exists in identities? (may be a bug) For this scenario I believe revocable will be false as the access profiles were encapsulated in a role. So, we need to remove these APs as well. Correct me if i’m wrong
Get the identity access (AP’s and Roles) - can specify a search query (requestable:true)
Loop through the returned access and submit revoke requests
I believe the loop limitation is still 100 items, so workflows may not be the appropriate solution if you are expecting identities to have more than 100 requestable access assigned.
Scope is to process many identities. But this can be handled by setting limit in HTTP operation for API search query. I’ll have a try by adding “revocable: true” in query and check if it returns only the requestable objects.
Thanks @margocbain, @liamkokeeffe . I have used below query to get only the requestable roles. It is working fine in Postman if I give the identity Id value manually. But it’s not working inside the loop. It’s not able to get the identity Ids inside the loop. (FYI…I can see the Identities Ids being passed as loop input)
Input to the loop is from above HTTP request which pull the identities from a query.
Loop Input: $.hTTPrequest.body
Contex searcht: $.hTTPrequest.body[*].id
You don’t need to pass revocable:true or requestable:true in your query because if you are calling REST API list-requestable-objects | SailPoint Developer Community suggested by @liamkokeeffe then its returning only requestable objects of identity. just update “query”:“types:ROLE” and try. hope this will helps.
Put a “Send Email” action inside the loop and send the search body as an email to yourself. If you find {{$.loop1.loopInput.id}} rendered correctly in the email, then there is some issue with execution of workflow and you need to contact SailPoint for help