Hi all, ![]()
When I read that SailPoint Supports entitlement hierarchy, I expected SailPoint being able to handle use cases for applications whose entitlements are hierarchical. Instead what I noticed, is that they only support reading the hierarchy. ISC is not acting on this information.
To give an example. We have an application we want to onboard. Their entitlements follow an hierarchy. Let’s say for simplicity that entitlements represent which ingredients you may manage. For example someone can manage apples, bananas, carrots, bread. However, you can also say someone can manage all fruit, regardless of the type. If we use the UI or API of that application, we can add the entitlement fruit. From that moment if you then look at the list of entitlements, it will not specify apples, bananas, carrots, bread, fruit. It will just show you carrots, bread, fruit. After all, apples and bananas are fruit and therefore don’t need to be mentioned again in the list. If we now try to add the entitlement apple again, we get an error saying the user already has this entitlement (which it inherited through the hierarchy due to fruit being there).
If we now use the web service connector of ISC, we can specify the hierarchy, and after entitlement aggregation, we can see in the UI of ISC, that is knows that fruit is the parent entitlement of apples and bananas and other fruit. We also can see that fruit is a child entitlement of all food.
However, suppose we now have a birthright role, saying every active employee is allowed to manage bananas. One person needs more then just this birthright role, they need to manage all fruit, so they also manually request the role pointing to fruit.
ISC will now deduce that fruit needs to be provisioned, after which the connector will provision this. The server accepts the API call, and says that the new list of entitlements is carrots, bread, fruit. During the next identity refresh, ISC is now thinking that bananas need to be added again. After all, the birthright role points to this, and the list is not specifically mentioning that the user has bananas as entitlement (and ISC is ignoring the entitlement hierarchy here, from which ISC could have easily deduced that the user already has bananas as part of its parent entitlement fruit). So ISC is trying to add bananas again, which the server rejects since it already knows that the user should be able to manage all fruit. During the next refresh, ISC will try again, and again. We can not configure the source such that it will act upon the hierarchy.
Therefore we must conclude that ISC does not truly support entitlement hierarchy. It can only show you the hierarchy.