I am currently evaluating OpenIAM 4.2.x with an Active Directory PowerShell managed system.
What works:
Users are imported successfully.
Groups are imported successfully.
Group attributes such as sAMAccountName and DistinguishedName are imported correctly.
User attributes such as GivenName, Surname, DisplayName, UserPrincipalName etc. are processed correctly.
The user synchronization job completes successfully.
What does not work:
AD group memberships are not imported.
No user-to-group relationships are created in OpenIAM (USER_GRP remains empty).
Configuration:
User policy: USER_POLICY_win02
Group policy: GROUP_POLICY_win02
memberOf is configured and active in the user policy.
User synchronization uses:
ADPowerShellAttributes.groovy
ADPowerShellTransformation.groovy
memberOf is included in the configured source attributes.
AD users have valid memberOf values.
Imported groups contain the correct DistinguishedName values matching the values returned by AD.
Question:
Is there any additional configuration required in OpenIAM to enable automatic processing of Active Directory memberOf relationships into OpenIAM group memberships?
Are there specific reconciliation settings, managed system settings, or membership mappings that must be configured beyond enabling the memberOf attribute in the user policy?
Any guidance or example configurations for AD group membership synchronization would be greatly appreciated.
Additionally, please verify the following before re-running the sync:
1. Group sync must run BEFORE user sync — addUserGroupByAttribute looks up already-imported groups by DistinguishedName
2. Imported AD groups must have metadata type set to AD_GROUP in OpenIAM
3. The DistinguishedName values stored on the OpenIAM group objects must match exactly (case and format) what AD returns in memberOf
One more thing worth clarifying: **the policy map is not relevant here.** Policy maps are used for outbound provisioning — i.e., when OpenIAM pushes changes *to* a target system. For inbound sync (importing users and group memberships *from* AD into OpenIAM), everything is handled by the transformation script in the synchronization.
Since memberOf never appears in the synchronization record, it seems that TransformActiveDirRecord.groovy never receives any group membership information to process.
This made me wonder whether the issue may actually occur before the transformation script is executed.
At the moment it appears that the synchronization process never receives memberOf at all, which would explain why no USER_GRP relationships are created.