Open Call - IDM Association Values for eDirectory Objects


Identity Manager stores an association value on each eDirectory object for each connected system.

The association value is meant to be connected in a system-specific way, and uniquely within it. Each driver handles this slightly differently.

I think it would be nice to have the complete list. Here are the ones I know about so far. If you know any more, please email me to add to the list! Or respond in the comments, or send me a personal message via Cool Solutions. All will work

DriverAssociation Value

eDirectoryeDirectory GUID value

Active DirectoryActive Directory GUID

Lotus Notes UNID (Notes Universal ID) (32 char string), see Lothars comments down below for how to find the UNID value within Lotus Notes.

GroupWiseNGW: GroupWise ID, this is a string with three parts, DOM.PO.UserName{xxx}GUIDValue I do not know what the {xxx} means, nor whose GUID but everybody in a GW system seems to have the same values.

Delimited Textemail address, but you almost always change that

JDBCPrimary Key value

PeopleSoftEMPLID (eDirs workforceID)

SAP HRPERNUM (eDir workForceID) for users, or one letter for object type followed by the OBJID (and leading zeroes are not removed, so an Position's value might be S00001234)

Older SAP UM"USd" followed by the SAP username

Newer SAP UMWith the CMP release, the SAP UM driver has a couple more modes. It still supports the old format, but now uses a new format of \SytemName\USdSAPUSERNAME which is the old value preceeded by the System name. Docs are here

Bidirectional AS400USRPRF in the AS400 (basically the username)

Bidirectional Linux/UnixusernameUser (Username value followed by literal string "User" no spaces. Same for groups, just the string is "Group"

Bidirectional RACF (Mainframe)"USER\userid" or "GROUP\groupid"

Bidirectional TopSecreteDir CN

FanoutGUID of the user or group and then maintains its own "association", a multi-valued field, one per platform, which is just the "CN"

Loopback/NullBy default nothing, but you can add whatever you like

eXtend Composer shimsWhatever you set it to be, no default

User ApplicationEverybody gets the same value, "AnAssociation"

ScriptingNo real default, whatever you set it to be

LDAPLDAP DN of the user, like cn=bob,o=acme

JMSDriver GUID & Message ID

Avaya PBX/DRIVERNAME/workorderCN Time like /Avaya PBX/avaya.test07 01/19/2009 09:24:49:0756

Work OrderWorkorder driver name, the workorder CN creation date/timestamp, e.g "\MyWorkorderDriver\MyWorkorder 1/14/2009 15:23

RemedySchema name and request ID of the entry

Third Party Drivers

Third Party DriverAssociation Value

Google Apps by Concensus ConsultingOlder versions used Google Username. (now supports renames! Yay!)

Google Apps in IDM 4.01 by Concensus ConsultingNew versions use:

SIF v4 from Concensus ConsultingSIF GUID, which is owned/generated by the Student Information System through its SIF agent.

Banner HR driver by Concensus ConsultingBanners psID which is part of each SOAP message

Pulsen Snapshot Driver V3 by PulsenLDAP: Any attribute value available in the application (including dn).
ODBC: Any column value available in the result set or a concatenated value from two or more columns (since the association is taken from one column in a result set and not a table it could be anything that a SQL statement can generate).

HL7 Driver from EST GroupA derived value to insure uniqueness

Google Apps Driver from EST GroupFull domain address of the destination domain

Tivoli Access Manager Driver from EST GroupSource DN of the object, since there is nothing unique that TAM provides

SOAPWhen you remap the SOAP to XDS, you need to build the association value, so its whatever you choose, hopefully some kind of unique database ID.

Here are the known drivers we are missing values for:

DriverAssociation Value

SIF v3Not sure, but driver deprecated

Did I miss any drivers? I know there are custom ones out there, so if you know of any let me know! But also lets focus on Novell provided ones

Shout out via the comments if you know one that we are missing! Feel free to email me, or send me a message via Cool Solutions if you would like.


How To-Best Practice
Comment List
  •   in reply to MigrationDeletedUser
    [System.BitConverter]::ToString([System.GUID]::Parse(@(Get-ADUser -LDAPFilter '(&(objectclass=person)(cn=user123))' -Properties objectGUID | select -Property objectGUID).objectguid.guid).ToByteArray()).toLower() -replace '-'
  •   in reply to MigrationDeletedUser

    If you are using PowerShell, then here is a simple one-liner to get from the regular AD objectGUID/GUID to the association value.

    Note that it is not purely byte-flipped representation.

    [System.BitConverter]::ToString([System.GUID]::Parse('{6B29FC40-CA47-1067-B31D-00DD010662DA}').ToByteArray()).toLower() -replace '-'

    Just replace the value within the curly brackets with your own GUID.

    However if you want to do this manually (or in another programming language), the following is the plain English formula.

    1. Remove curly braces and hyphens.
    2. Reverse first 8 characters i.e. '6B29FC40' becomes '40fc296b'
    3. Reverse next 4 characters i.e. 'CA47' becomes '47ca'
    4. Reverse next 4 characters i.e. '1067' becomes '6710'
    5. Copy, unchanged the next 4 characters i.e. 'B31D' stays as 'B31D'
    6. Copy, unchanged the next 12 characters i.e. '00DD010662DA' stays as '00dd010662da'

    This example GUID {6B29FC40-CA47-1067-B31D-00DD010662DA} converts to: 40fc296b47ca6710b31d00dd010662da

    Association is the /DRIVERNAME/workorderCN Time

    i.e., - /Avaya PBX/avaya.test07 01/19/2009 09:24:49:0756
    the leading letter indicating the SAP object type on non-user objects is added by an input transform in the default driver config (and not always removed in output transforms, which causes some queries to never return any results). The driver shim itself expects OBJID only, without any letter at the beginning.
    No idea why the default driver config adds the letters (human readability cannot be the only reason to unnecessarily complicate things that way, can it?), my driver works just fine with the unmodified values.
    LDAP: DN of the object in the LDAP directory, e.g. "cn=surname\, givenname,dc=users,dc=acme"

    WorkOrder: name of the Workorder driver, the workorder + creation date/timestamp, e.g "\MyWorkorderDriver\MyWorkorder 1/14/2009 15:23"
    LDAP driver will use the object DN from the LDAP server.

    JMS server by default will use the Driver GUID & Message ID. if required this behavior can be changed.
    Darn, I remember seeing that and thinking it was the other guy who did the UA drivers idea of a joke. Oh well. It does not need a unique value really, so any string would do I guess.

    I love funny names for variables, test users (Though my boss is awesome at those!), server names, etc.
    The association value for the User Application driver is the text AnAssociation
    there´s an easier way to get the UNID in notes:

    click on the document (e.g. a person-document in names.nsf,..) and open the "meta"-tag (). there is a string which contains the UNID in the second last field (as is in notes 7). take the last 32 numbers (just after the last "/").

    full string:

    The noted driver uses an association value that is a concatenation of thw first two ID values, as shown in the properties of any notes doc (on the tab with the propeller-helmet icon - or whatever it shall be). The first two letters ("OF" and "ON") are left out, as well as the ":" in the middle of the IDs. So if your doc's IDs are


    the association value will be 6D54E567C44A9B56678DE654A9845B44