and more in a single search tool across platforms. Read the announcement here. |
03/15/2024 05:10 AM
Hi,
I'm working on a REST based integration where user provisioning / de-provisioning is working as expected.
When it comes to access provisioning / de-provisioning, I'm facing a bit of a challenge, given the nature of the entitlements.
Target Roles are reconciled as entitlements within SIGA. These roles have "spaces" between their names and the APIs existing for provisioning / deprovisioning are as follows:
Grant Access: https://URL.com/data/v19_10/roles/{{ROLE_NAME}}/users/{{USER_EMAIL}}, Call -> PUT
Revoke Access: https://URL.com/data/v19_10/roles/{{ROLE_NAME}}/users/{{USER_EMAIL}}, Call -> DELETE
ROLE_NAME is being retrieved as entitlementValue.entitlementID
USER_EMAIL is being retrieved from user.email
Values are populating just fine in the URL, however, since both these attributes are part of the URL, hence, due to the spaces in the ROLE_NAME, Saviynt fails to treat the retrieved value as a compete String and errors out at the first occurrence of the space within the URL.
I've tried adding %20 / double quotes ("") / single quotes ('') but it is of no help as the API expects the value as https://URL.com/data/v19_10/roles/A B C/users/abc.cominstead of https://URL.com/data/v19_10/roles/'A B C'/users/abc.com ORhttps://URL.com/data/v19_10/roles/"A B C"/users/abc.com ORhttps://URL.com/data/v19_10/roles/A%20B%20C/users/abc.com
Regards,
Nikhil
Solved! Go to Solution.
03/15/2024 06:50 AM
This is resolved. It seems the API was behaving inconsistently. replacing with %20 works.
"url": "https://URL.com/v19_10/roles/${entitlementValue.entitlementID.toString().replace(' ','%20')}/users/${user.email}",