In some scenarios, the requirement is to create the account only, without granting any real access in the target system. We don’t want to add a real dummy group on the target system.
Current Limitation
Currently, there is no way to create an account in a source without going through an access request.
To trigger account creation, an entitlement must be granted.
Common Workaround
Create a dummy entitlement that is granted to the user.
Even though it does not grant any real permissions, this entitlement still exists as a real entitlement, which is not always desirable from a governance or design perspective.
Proposed Solution
The proposed solution still uses an entitlement to trigger account creation, but:
The entitlement does not actually exist in the target system
It is used only as a technical trigger inside SailPoint
To achieve this, a second entitlement type is created, dedicated exclusively to account creation.
This entitlement will never be effectively granted in the target system.
How the Mechanism Works
A special entitlement is granted via an Access Profile
Note: In SailPoint ISC, roles and entitlements are sticky, meaning that if access is granted through ISC, it will be re-provisioned if removed from the target system. To allow the access to be removed after the next aggregation, you should use an Access Profile instead.
This entitlement triggers the account creation
During the first account aggregation:
The entitlement is not found on the account
The Access Profile is automatically removed from the identity
No reprovisioning loop occurs because:
Access Profiles do not enforce access
Unlike Roles or enforced entitlement requests
Implementation Steps
Create a new entitlement type Example:create_account
Reset the source using the VS Code plugin (optional)
This is only required if the new attribute was added to a running source. In some cases, this new attribute may not be recognized as an entitlement when you create and configure the Access Profile.
Create an HTTP operation for Group Aggregation-create_account
cURL:
curl --location --request GET 'https://postman-echo.com/get?id=fake_entitlement&description=fake_description'
Note: This postman-echo.com allows you to send data and receive the same data back, simulating an entitlement aggregation response.
Create an HTTP operation for Add Entitlement-create_account
cURL:
curl --location --request GET 'https://postman-echo.com/get?id=fake_entitlement&description=fake_description'
Note: This endpoint exists only to trigger the provisioning flow, and since it always returns a 200 response, the execution will be considered successful.
Thank you for sharing this interesting approach—it addresses a known limitation in ISC when the goal is to manage accounts (particularly account creation) without managing access.
I have a question regarding your entitlement aggregation simulation. You used the following request:
GET https://postman-echo.com/get?id=fake_entitlement&description=fake_description
In a restricted environment using a VA-based Webservice connector, where outbound communication to external URLs is limited or blocked, do you have any idea for simulating this entitlement aggregation?
That piece caught my eye as well. It creates a dependency on postman-echo. I would think that in your restricted environment, that it could still reach ISC, so curl --location --request GET ‘https://<tenantName>.identitynow.com’ would still get you a 200 response code. Then you would need to use a short after operation rule to set your entitlement name and id, since it won’t be in the response.
Thank you both for the feedback, these are very valid points.
I gave it some thought and there is indeed a cleaner and more self-contained approach that avoids any external dependency and eliminates the need for an after rule (especially if you want to work with a SaaS-based connector).
Alternative approach (no external endpoint required)
Instead of relying on an external service like Postman Echo, you can leverage ISC itself as the source of truth.
Steps
1. Create a dummy Role
Create a Role with the same name as the group you want to simulate
Populate the description field as needed
The role does not need to be enabled, it just needs to exist
this below logic may work as well. I am in early testing with it. It is a web services after operation rule to add a group entitlement as part of aggregating. Look for the values in the code " and replace it with your application name. Would just need to reference this rule on the afterrule parameter for the HTTP Operation.