Guidance Needed for Creating Entitlements in SailPoint IIQ for Web Service Application

Hi All,

I hope all doing good.

I have the following response from a group object in my web service application:

{
“items”: [
{
“product”: {
“id”: “A”,
“name”: “Account”
},
“role”: {
“id”: 1,
“name”: “Preparer”
}
},
{
“product”: {
“id”: “A”,
“name”: “Account”
},
“role”: {
“id”: 2,
“name”: “Approver”
}
}
]
}

I need to create entitlements (accountGroup) in SailPoint IdentityIQ for this web service application. The display name for each accountGroup should be formatted as:
Role Name: Product ID (e.g., Preparer: A).

The values for the entitlement should be comma-separated and formatted as:
Role ID, Product ID (e.g., 1,A for Preparer and 2,A for Approver).

Additionally, while creating the account, I need to pass both product.id and role.id. Could anyone guide me on how to implement this in SailPoint IIQ or provide the code if available? Any assistance would be greatly appreciated.

Hi @Venu1010 - this is very doable within IdentityIQ. I’ll break it down in terms of your two question categories: group aggregation and provisioning entitlements

Group Aggregation: Creating Entitlements within IdentityIQ

Based on the shared JSON response from your application, you want to build your accountGroup schema with all of the necessary information you need to create entitlement objects within IdentityIQ. To make things easy, I would use clear named attributes for your schema (i.e. role_id, product_id, role_name, etc) to distinguish what data is the “role” and what is the “product”.

You can map these values using JSON path expressions in your group aggregation operation on the connector like so:

Given your requirement to use colon separated values for name, and comma separated values for value, you have two options here:

  1. After Operation Rule: use an after operation rule to parse the response, add two custom attributes (name and value or whatever names you would like), and add to each JSON item object
  2. Group Customization Rule: use a group customization rule to parse each ResourceObject and add 2 custom schema attributes for your name and value)

I would vote option 2 here just because it’s a bit simpler and easier to manipulate the resource object vs the entire response payload. You would then use these 2 new custom attributes within your accountGroup schema like so:

Provisioning Entitlements to Application

If your entitlements look like the following formats:
name: <role_name>: <product_id>
value: <role_id>, <product_id>

You should have all the information you need to provision these entitlements. When a user requests an entitlement for your web service, there will be an attribute request in the provisioning plan that looks like this:

<AttributeRequest name="accountGroup" op="Add" value="1,A"/>

In your before operation rule, you can extract out the necessary role id and product id from the value in the attribute request since you are setting the format to <role_id>, <product_id>. “1” would be the role id here and “A” would be the product id. You can use those values appropriately to build the necessary payload for your application.

Hope this helps! Lmk if you have additional questions here, happy to dive into anything in further detail

@robert-hails I believe you are referring to ManagedAttributePromotion rule. This rule has a limitation, it only triggers while creating a new entitlement. if there is any change on entitlement meta data, this rule will not be triggered again.

Not the ManagedAttributePromotion rule, I was suggesting the ResourceObjectCustomization on the application.