Hi! I have a jdbc connectors on which I have this line to retrieve account name:
String nativeIdentity = plan.getNativeIdentity();
But instead of this, when I do log.debug(nativeIdentity) I observe that value retrieved is the authoritative source account name, not the actual jdbc account name.
In the XML, A provisioning plan attribute contains the nativeIdentity which implies that this provisioning plan belongs to which user in Sailpoint. In our case, it is for 1c2c3d4c.
Next is the AccountRequest attribute which contains multiple details -
For which application, the plan is applicable? In our case, it’s the Wintel Application.
What is the native identifier for the account? In our case, It is dbId01
Which operation needs to be performed? In our case, It’s the create operation.
ProvisioningPlan.getNativeIdentity() is plan-level and holds the identity’s authoritative name (from the source that triggered the request), not the target app’s account name. For the JDBC account, you must read the AccountRequest’s native identity (or its username attribute), not the plan’s.
Below is the correct way to fetch native identifier for the target system -
Hi Amit thanks for responding. It is strange, because in log I see that native identity is correct in xml. But when trying to retrieve it with plan.getNativeIdentity() it brings the authoritative source account name instead.
ProvisioningPlan.getNativeIdentity() is plan-level and holds the identity’s authoritative name (from the source that triggered the request), not the target app’s account name.
Correct way to fetch - ProvisioningPlan.getAccountRequest(appName).getNativeIdentity();