JDBC Synchronization not creating a User Identity entry

Hello,

I have configured a JDBC Synchronization, but when I run it there is a strange behavior:

I can correctly see the new user attributes, but I cannot see the new Account entry listed under “User Identities”, as is for other managed systems:

Can anyone help me to solve the issue?

Hello Francesco,

Are you using the default (classic) view which shows all of the fields, or a template view?

Also, can you please share your policy map?

Thanks,
Ameet

Hello Ameet,

I am using the classic view, regarding the policy map there is any configured policy right now.

Am I supposed to configure one?

Regards,

Francesco

Hello Francesco,

In your transformation script you may be missing the login object for the JDBC-based managed system. As an example, in our AD synch script we have the following code:

    String AD_MANAGED_SYS_ID = "active_dir_win02_managed_sys_id";    
    if (KEEP_AD_ID && isNewUser) {
            println(" - Processing PrincipalName and DN")
            //attrVal = columnMap.get("sAMAccountName")
            if (attrVal) {
 
 
                // PRE-POPULATE THE USER LOGIN. IN SOME CASES THE COMPANY WANTS TO KEEP THE LOGIN THAT THEY HAVE
                // THIS SHOWS HOW WE CAN DO THAT
 
                def lg = new Login()
                lg.operation = AttributeOperationEnum.ADD
                lg.login = attrVal.value
                lg.managedSysId = "0"
                lg.setActive(true)
                pUser.principalList.add(lg)
 
                Login lg2 = new Login()
                lg2.operation = AttributeOperationEnum.ADD
                lg2.login = attrVal.value
                lg2.managedSysId = AD_MANAGED_SYS_ID
                lg2.setActive(true)
                pUser.principalList.add(lg2)
 
            }
        }

Please note the login object in the second part of the script – you need to add this to your transformation script. I will follow up with our team so that they add this to the out-of-the-box scripts.

Thanks,
Ameet

1 Like

Hello Ameet,

many thanks.

Can I ask you why there is a first login record set with managedSysId = “0”, what is the purpose of that?

Regards,

Francesco

Hello Francesco,

That managedSysId refers to the OpenIAM managed system. It is the only managed system that has a set value.

Ameet