Hi,
Unless you are on an older version of ISVA, but otherwise I would suggest to use the native LDAP utils. That requires to configure a server connection (AAC or Federation menu Global settings \ Server Connections). Create a connection of type LDAP and provide all the necessary data. Below snippets should be able to retrieve the user and his group membership.
var initialUserName = stsuu.getPrincipalName();
var ldapCtx = new AttributeUtil();
ldapCtx.init("SERVERCONNECTIONNAME","OU=Users,OU=XXX,DC=YY,DC=ZZ");
var tmpname = extractUsername(initialUserName);
IDMappingExtUtils.traceString("Extracted name: " + tmpname);
var searchFilter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=" +tmpname+"))";
var ldapResult = ldapCtx.search("OU=Users,OU=XXX,DC=YYY,DC=ZZZ",searchFilter);
IDMappingExtUtils.traceString("LDAP result of Active Directory: " + ldapResult);
var result = ldapResult.getNamingEnumeration();
var ldapCtx = new AttributeUtil();
ldapCtx.init("SERVERCONNECTIONNAME","OU=Groups,OU=XXX,DC=yyyy,DC=zzzz");
var searchFilterGroups = "(& (objectClass=group)(member=" +dn+"))";
// Perform search for group membership.
var ldapResult = ldapCtx.search("OU=Groups,OU=XXXX,DC=YYYY,DC=ZZZ",searchFilterGroups);
var result = ldapResult.getNamingEnumeration();
var result = ldapResult.getNamingEnumeration();
var groupdn ='';
if (result != null) {
// Loop through the returned attributes
let i = 0;
while(result.hasMore()) {
var resultEntry = result.next();
groupdn = ''+ resultEntry.getNameInNamespace();
var grp = extractGroup(groupdn);
var grpname = subStr(grp,'CN=') ;
Hope this helps
Kind regards
Serge Vereecke
IBM
------------------------------
Serge Vereecke
------------------------------