Showing posts with label AD. Show all posts
Showing posts with label AD. Show all posts

Thursday, January 4, 2024

Object Classes for Group/Entitlement creation in AD/LDAP

  • objectClass: groupOfUniqueNames
  • objectClass: top
  • cn: IIQ 
  • description: SailPoint IIQ Admin Access


Wednesday, August 9, 2023

Username Generation

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import sailpoint.api.SailPointContext;
import sailpoint.connector.Connector;
import sailpoint.connector.ConnectorFactory;
import sailpoint.object.Application;
import sailpoint.object.Filter;
import sailpoint.object.Identity;
import sailpoint.object.QueryOptions;
import sailpoint.tools.Util;
import sailpoint.object.ResourceObject;
import sailpoint.tools.CloseableIterator;
import sailpoint.tools.GeneralException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class UsernameGeneration{

static SailPointContext context = null;
static Identity identity = null;
static Log log = LogFactory.getLog("com.mighty.rule");

static boolean issAMAccountNameUniueInAD2(SailPointContext context, String sAMAccountName) {
if (sAMAccountName == null || sAMAccountName.isEmpty()) {
log.debug("sAMAccountName is null / empty");
return false;
}
boolean unique = true;
String searchDN = null;
String appConnName = null;
Application application = null;
Application appCopy = null;

String searchFilter = "(sAMAccountName=" + sAMAccountName + ")";
List dnList = null;
Map setUpMap = new HashMap();
Connector appConnector = null;
CloseableIterator iterator = null;
try {
application = context.getObjectByName(Application.class, "AD");
appCopy = (Application) application.deepCopy(context);
appCopy.setPasswordPolicies(null);
appConnName = appCopy.getConnector();

if (appCopy.getAttributes().getMap().get("domainSettings").get(0).get("domainDN") != null) {
searchDN = appCopy.getAttributes().getMap().get("domainSettings").get(0).get("domainDN");
}

setUpMap.put("searchDN", searchDN);
setUpMap.put("searchFilter", searchFilter);
dnList.add(0, setUpMap);

appCopy.setAttribute("searchDN", dnList);
appCopy.setAttribute("referral", "ignore");
appCopy.setAttribute("useHasMoreElements", true);
appCopy.setCustomizationRule(null);

appConnector = ConnectorFactory.getConnector(appCopy, null);
iterator = appConnector.iterateObjects(Connector.TYPE_ACCOUNT, null, null);

try {
if (iterator != null && iterator.hasNext()) {
ResourceObject user = (ResourceObject) iterator.next();
unique = false;
}
} catch (Exception e) {
}

} catch (GeneralException e) {
log.error("GeneralException: " + e.getMessage());
} finally {
if (iterator != null) {
iterator.close();
}
}
return unique;
}

static boolean issAMAccountNameUniueInAD(SailPointContext context, String sAMAccountName) {

if (sAMAccountName == null || sAMAccountName.isEmpty()) {
log.debug("sAMAccountName is null / empty");
return false;
}
boolean unique = true;
String appConnName = null;
Application application = null;
Application appCopy = null;

int i = 0;
String searchFilter = "(sAMAccountName=" + sAMAccountName + ")";
List<HashMap> dnList = null;
Map setUpMap = new HashMap();
CloseableIterator iterator = null;
try {
application = context.getObjectByName(Application.class, "AD");
appCopy = (Application) application.deepCopy(context);
appCopy.setPasswordPolicies(null);
appConnName = appCopy.getConnector();
dnList = (List) appCopy.getAttributes().getMap().get("domainSettings");

for (HashMap domain : dnList) {
String searchDN = domain.get("domainDN").toString();
setUpMap.put("searchDN", searchDN);
setUpMap.put("searchFilter", searchFilter);
dnList.add(i, domain);
i++;
}
appCopy.setAttribute("searchDN", dnList);
appCopy.setAttribute("referral", "ignore");
appCopy.setAttribute("useHasMoreElements", true);
appCopy.setCustomizationRule(null);

Connector appConnector = sailpoint.connector.ConnectorFactory.getConnector(appCopy, null);
iterator = appConnector.iterateObjects(Connector.TYPE_ACCOUNT, null, null);

try {
if (iterator != null && iterator.hasNext()) {
ResourceObject user = (ResourceObject) iterator.next();
unique = false;
}
} catch (Exception e) {
}

} catch (GeneralException e) {
log.error("GeneralException: " + e.getMessage());
} finally {
if (iterator != null) {
iterator.close();
}
}
return unique;
}

static boolean isNameUniueInIIQ(SailPointContext context, String cubeName) {
if (cubeName == null || cubeName.isEmpty()) {
return false;
}
boolean unique = true;
Identity identityLookup = null;
try {
identityLookup = context.getObjectByName(Identity.class, cubeName);
if (identityLookup != null) {
unique = false;
return unique;
} else {
return unique;
}
} catch (GeneralException e) {
log.error("GeneralException" + e.getMessage());
}
return false;
}

static boolean isNameUniueInHR(SailPointContext context, String userName) {
if (userName == null || userName.isEmpty()) {
return false;
}
boolean unique = true;
Filter filter = null;
QueryOptions ops = new QueryOptions();
filter = Filter.eq(userName, userName);
try {
Iterator iterator = context.search(Identity.class, ops);
if (null != iterator && iterator.hasNext()) {
unique = false;
return unique;
} else {
return unique;
}
} catch (GeneralException e) {
log.error("GeneralException: " + e.getMessage());
}
return false;
}

static String generateUserName(SailPointContext context, Identity identity) {

String retVal = null;
String type = "";
String firstName = null;
String lastName = null;
String firstNameSub = null;
String lastNameSub = null;
int firstLength = 0;
int lastLenght = 0;
int index = 1;

if (null != identity && null != identity.getAttribute("userType")) {

type = identity.getAttribute("userType").toString();
if (type.equalsIgnoreCase("Employee")) {

if (Util.isNotNullOrEmpty(identity.getFirstname()) && Util.isNotNullOrEmpty(identity.getLastname())) {

firstName = identity.getFirstname().toLowerCase();
lastName = identity.getLastname().toLowerCase();

firstLength = firstName.length();
lastLenght = lastName.length();

firstNameSub = firstName;
lastNameSub = lastName;

if (lastLenght > 11) {
lastNameSub = lastNameSub.substring(0, 11);
}
retVal = firstName.substring(0, 1) + lastNameSub;
if (retVal != null) {
String baseName = retVal;
while (issAMAccountNameUniueInAD(context, retVal)) {
if (firstLength >= (++index)) {
retVal = firstName.substring(0, index) + lastNameSub;

if (retVal.length() > 12) {
retVal = retVal.substring(0, 12);
}
} else {
return null;
}
}
while (isNameUniueInIIQ(context, retVal)) {
if (firstLength >= (++index)) {
retVal = firstName.substring(0, index) + lastNameSub;

if (retVal.length() > 12) {
retVal = retVal.substring(0, 12);
}
} else {
return null;
}
}

while (isNameUniueInHR(context, retVal)) {
if (firstLength >= (++index)) {
retVal = firstName.substring(0, index) + lastNameSub;
if (retVal.length() > 12) {
retVal = retVal.substring(0, 12);
}
} else {
return null;
}
}
}
}
} else if (type.equalsIgnoreCase("Consultant")) {
if (Util.isNotNullOrEmpty(identity.getFirstname()) && Util.isNotNullOrEmpty(identity.getLastname())) {

firstName = identity.getFirstname().toLowerCase();
lastName = identity.getLastname().toLowerCase();

firstLength = firstName.length();
lastLenght = lastName.length();

firstNameSub = firstName;
lastNameSub = lastName;

if (lastLenght > 9) {
lastNameSub = lastNameSub.substring(0, 9);
}

retVal = "c-" + firstName.substring(0, 1) + lastNameSub;

if (retVal != null) {
String baseName = retVal;

while (!issAMAccountNameUniueInAD(context, retVal)) {

if (firstLength >= (++index)) {
retVal = firstName.substring(0, index) + lastNameSub;

if (retVal.length() > 10) {
retVal = retVal.substring(0, 10);
}
} else {
return null;
}
}
while (!isNameUniueInIIQ(context, retVal)) {
if (firstLength >= (++index)) {
retVal = firstName.substring(0, index) + lastNameSub;

if (retVal.length() > 10) {
retVal = retVal.substring(0, 10);
}
} else {
return null;
}
}

while (!isNameUniueInHR(context, retVal)) {
if (firstLength >= (++index)) {
retVal = firstName.substring(0, index) + lastNameSub;
if (retVal.length() > 12) {
retVal = retVal.substring(0, 12);
}
} else {
return null;
}
}
}
}
} else {
return null;
}
}
return retVal;
}

public static void main(String[] args) {
String sAMAccountName = null;
generateUserName(context, identity);
issAMAccountNameUniueInAD2(context, sAMAccountName);
}
}

Wednesday, February 16, 2022

Basics of AD

Group Type: Group type defines how a group is used within Active Directory.

Group Scope: The group scope controls which objects the group can contain. 

Group scopes available in an Active Directory domain include domain local groups, global groups, and universal groups.


Distribution Groups: Distribution groups are Nonsecurity-related groups created for the distribution of information to one or more persons.

Security Groups: Security groups are Security-related groups created for granting resource access permissions to multiple users.

Thursday, March 25, 2021

Move AD account from one OU to another OU

<Source>

  import java.util.*;
  import java.io.IOException;      
  import javax.faces.context.FacesContext;
  import javax.naming.ldap.LdapName;
  import javax.naming.ldap.Rdn;    
  import org.apache.log4j.Logger;

  import sailpoint.api.SailPointContext;
  import sailpoint.api.IdentityService;
  import sailpoint.api.ObjectUtil;
  import sailpoint.api.PersistenceManager;
  import sailpoint.api.Provisioner;

  import sailpoint.connector.ADLDAPConnector;
  import sailpoint.connector.Connector;

  import sailpoint.object.*;
  import sailpoint.object.Application;
  import sailpoint.object.Attributes;
  import sailpoint.object.Custom;
  import sailpoint.object.Filter;
  import sailpoint.object.Identity;
  import sailpoint.object.Link;
  import sailpoint.object.ManagedAttribute;
  import sailpoint.object.ProvisioningPlan;
  import sailpoint.object.ProvisioningPlan.AccountRequest;
  import sailpoint.object.ProvisioningPlan.AttributeRequest;
  import sailpoint.object.QueryOptions;  

  import sailpoint.tools.CloseableIterator;
  import sailpoint.tools.GeneralException;
  import sailpoint.tools.Message;
  import sailpoint.tools.Util;
  import sailpoint.workflow.WorkflowContext;

  // Disable AD Account and Move AD account from one OU to another OU
  public ProvisioningPlan buildMoveADAccountsPlan(WorkflowContext wfc)
    throws GeneralException{

    String methodName = "buildMoveADAccountsPlan";
    Logger ruleLog = Logger.getLogger("RuleLog");

    String nativeIdentity = null;
    String newOU = null;  

    System.out.println("Entering into buildMoveADAccountsPlan rule");
    ruleLog.error("Entering into buildMoveADAccountsPlan rule");

    if (ruleLog.isDebugEnabled()) {ruleLog.error("Entering into buildMoveADAccountsPlan rule");}

    Attributes args = wfc.getArguments();  
    System.out.println("Attributes = "+args);
    ruleLog.error("Attributes = "+args);

    String op = Util.getString(args, "op");
    System.out.println("Operation = "+op);
    ruleLog.error("Operation = "+op);

    if ( op == null ){

      throw new GeneralException("Operation (op) must be specified.");
    }

    ProvisioningPlan plan = new ProvisioningPlan();
    SailPointContext context = wfc.getSailPointContext();
    System.out.println("SailPointContext = "+context);
    ruleLog.error("SailPointContext = "+context);

    //  Custom settings = context.getObjectByName(Custom.class, "Custom Settings");      

    String identityName = Util.getString(args, "identityName");
    System.out.println("identityName = "+identityName);
    ruleLog.error("identityName = "+identityName);

    if (ruleLog.isDebugEnabled()) {

      System.out.println("Processing identity " + identityName);
      ruleLog.error("Processing identity " + identityName);
    }

    Identity identity = context.getObjectByName(Identity.class, identityName);      

    if (null != identity) {

      plan.setIdentity(identity);

      // Get a list of AD applications
      List appList = getADApps();
      System.out.println("appList = "+appList);
      ruleLog.error("appList = "+appList);

      IdentityService identityService = new IdentityService(context);

      for (Application app : appList) {

        List links = identityService.getLinks(identity, app);
        System.out.println("List of links are = "+links);
        ruleLog.error("List of links are = "+links);

        // Application application = context.getObjectByName(Application.class, app);

        String appType = app.getType();
        System.out.println("appType is = "+appType);
        ruleLog.error("appType is = "+appType);

        if ("Active Directory - Direct".equals(app.getType())){

          Attributes attributes = app.getAttributes();
          System.out.println("Attributes are : "+attributes);
          ruleLog.error("Attributes are : "+attributes);

          List searchdns = attributes.getList("searchDNs");
          System.out.println("searchdns are : "+searchdns);
          ruleLog.error("searchdns are : "+searchdns);


          /*  List dn = list.get("searchDN");

          System.out.println("dn are : "+dn);
          ruleLog.error("dn are : "+dn);*/

          Iterator itr = searchdns.iterator();

          while(itr.hasNext()){

            String searchDN = itr.next().get("searchDN").toString();
            System.out.println("Users OU is : "+searchDN);
            ruleLog.error("Users OU is : "+searchDN);

            boolean flag = searchDN.toLowerCase().contains("disabled users");
            //boolean flag = searchDN.toLowerCase().contains("Disabled Users");

            System.out.println("flag... : "+flag);
            ruleLog.error("flag..... : "+flag);

            if(flag){
              System.out.println("Disabled Users OU is... : "+searchDN);
              ruleLog.error("Disabled Users OU is..... : "+searchDN);
            }
          }
        }

        if ((null != links) &amp;&amp; !links.isEmpty()) {

          for (Link link : links) {

            nativeIdentity = link.getNativeIdentity();
            System.out.println("nativeIdentity is : "+nativeIdentity);
            ruleLog.error("nativeIdentity is : "+nativeIdentity);

            // Disable the AD account
            if (ruleLog.isDebugEnabled()){
              ruleLog.error("Disabling account " + link.getNativeIdentity() + " in application " + link.getApplicationName());
            }

            AccountRequest acctReq = new AccountRequest();

            acctReq.setApplication(link.getApplicationName());
            acctReq.setInstance(link.getInstance());
            acctReq.setNativeIdentity(nativeIdentity);
            acctReq.setOperation(AccountRequest.Operation.Disable);        

            //  acctReq.add(new AttributeRequest("IIQDisabled","true"))

            // String dn = link.getAttribute("distinguishedName");

            if(op.equals("Disable")) {

              if (nativeIdentity.toLowerCase().contains("dc=mightypedia,dc=com")) {

                //newOU = "ou=Disabled Users,dc=maxcrc,dc=com";

                newOU="ou=Disabled Users,dc=mightypedia,dc=com";

                //newOU = settings.get("Disabled Users");
                //System.out.println("newOU is : "+newOU);

                System.out.println("cn=" +nativeIdentity+","+"Dynamically getting Disable OU is : "+newOU);
                log.error("cn=" +nativeIdentity+","+"Dynamically getting Disable OU is : "+newOU);

              }
            }
            if(ruleLog.isDebugEnabled()){System.out.println("Moving to : "+newOU);ruleLog.error("Moving to : "+newOU);}

            if(null!=newOU&amp;&amp;!newOU.equalsIgnoreCase(getParentContainerDN(nativeIdentity))){

              AccountRequest acctReq = new AccountRequest();

              acctReq.setApplication(link.getApplicationName());
           //   acctReq.setInstance(link.getInstance());
              acctReq.setNativeIdentity(link.getNativeIdentity());
              acctReq.setOperation(AccountRequest.Operation.Modify);

             // AttributeRequest attReq = new AttributeRequest();

            //  attReq.setName("AC_NewParent");
           //   attReq.setValue(newOU);
           //   attReq.setOp(ProvisioningPlan.Operation.Set);
           //   acctReq.add(attReq);
             acctReq.add(new AttributeRequest ("AC_NewParent", ProvisioningPlan.Operation.Set, newOU));
              plan.setIdentity(identity);
              plan.add(acctReq);

              System.out.println("*************Compiling starts for ProvisioningPlan*******************");

              Provisioner provisioner = new Provisioner(context);
              ProvisioningProject project = provisioner.compile(plan);
              provisioner.execute(project);

              System.out.println("*****************Compilation has completed for ProvisioningPlan *********");                                                                

            }          
          }
        }
      }
    }

    if(ruleLog.isDebugEnabled()){
      System.out.println("Returning plan: "+plan.toXml());ruleLog.error("Returning plan: "+plan.toXml());
    }

    return plan;
  }

  // Get the parent container DN of an LDAP full DN    
  public String getParentContainerDN(String dn) {

    String methodName = "getParentContainerDN";
    System.out.println("Entering into the method : "+methodName);      

    LdapName ln = new LdapName(dn);
    String parentDN = ln.getPrefix(ln.size() - 1).toString();    

    System.out.println("Parent ContainerDN : "+parentDN);        
    System.out.println("Exiting from the method : "+methodName);  

    return parentDN;      
  }

  // Get a list of all the AD applications
  public List getADApps() {

    String methodName = "getADApps";
    Logger ruleLog = Logger.getLogger("rule.RuleLog");

    System.out.println("Entering into the method : " + methodName);
    ruleLog.error("Entering into the method : " + methodName);


    List appList = new ArrayList();

    QueryOptions qo = new QueryOptions();
    qo.addFilter(Filter.eq("connector", "sailpoint.connector.ADLDAPConnector"));

    Iterator it = context.search(Application.class, qo);

    while (it.hasNext()) {

      Application thisApplication = it.next();

      if (ruleLog.isDebugEnabled()) {
        System.out.println("Found AD application " + thisApplication.getName());
        ruleLog.error("Found AD application " + thisApplication.getName());
      }

      appList.add(thisApplication);
    }
    if (appList.isEmpty()) {
      System.out.println("No AD Directory applications found");
      ruleLog.error("No AD Directory applications found");
    }

    System.out.println("Exiting from the method : " + methodName);
    ruleLog.error("Exiting from the method : " + methodName);

    return appList;
  }
  </Source>

Thursday, March 18, 2021

How to Create Domain in Windows Server ?

Pre-requisites:

# VMware Software - Download VMware Workstation Pro
# Install VMware
# Install Windows Server


Steps for Active Directory Domain Services:-

1. Navigate Windows and search for Server Manager


2. Click on Server Manager

3. Click on Add Roles and Features.

4. Select the Role-based or Feature-based Installation option. Click on Next.

5. Select a server from the server pool option. Click on Next.

6. Select the Active Directory Domain Services.

7. Click on Add Features.

8. Click on Next.

9. Restart the destination server automatically if required option. Click on Install.



Steps for Domain Creation :-

1. Navigate Windows and search for Server Manager


2. Click on Server Manager


3. Navigate to the notification symbol (it's available on the top right side corner) and click on it.


4. Click on Promote this server to a domain controller

5. Select  Add a new Forest radio button and enter the domain name



6. Create a new password.

7.Click on Next ---> Next -----> Next ---> Install ---->Restart











Tuesday, March 9, 2021

Move AD account from People OU to Disable OU & vice versa (Enable) in IIQ

public ProvisioningPlan buildMoveADAccountsPlan(WorkflowContext wfc) 

        throws GeneralException {


        Logger ruleLog = Logger.getLogger("RuleLog");

        if (ruleLog.isDebugEnabled()) ruleLog.debug("Entering into buildMoveADAccountsPlan rule");

        Attributes args = wfc.getArguments();      

        String op = Util.getString(args, "op");


        if ( op == null ){

           throw new GeneralException("Operation (op) must be specified.");

   }    

        Custom settings = context.getObjectByName(Custom.class, "Custom Settings");

        ProvisioningPlan plan = new ProvisioningPlan();

        String identityName = Util.getString(args, "identityName");

        if (ruleLog.isDebugEnabled()) ruleLog.debug("Processing identity " + identityName);

        Identity identity = context.getObjectByName(Identity.class, identityName);        


        if (null != identity) {

           plan.setIdentity(identity);         


           // Get a list of AD applications 

           List appList = getADApps();       

           IdentityService identityService = new IdentityService(context);

           for (Application app : appList) {

              List links = identityService.getLinks(identity, app);

              if ((null != links) &amp;&amp; !links.isEmpty()) {

                for (Link link : links) {

                   String nativeIdentity = link.getNativeIdentity();

                   String newOU = null;

                   if (op.equals("Disable")) {

                      if (nativeIdentity.toLowerCase().endsWith("dc=mightypedia,dc=com")){

                         newOU = settings.get("pediaADDisabledUsersOU");

}                 

                   } 

      }

             }

                   if (ruleLog.isDebugEnabled()) {

   ruleLog.debug("Moving to " + newOU);

   }

                   if (null != newOU &amp;&amp; ! newOU.equalsIgnoreCase(getParentContainerDN(nativeIdentity))) {

                      AccountRequest acctReq = new AccountRequest();

                      acctReq.setApplication(link.getApplicationName());

                      acctReq.setInstance(link.getInstance());

                      acctReq.setNativeIdentity(link.getNativeIdentity());

                      acctReq.setOperation(AccountRequest.Operation.Modify);

      AttributeRequest attReq = new AttributeRequest();


                      attReq.setName("AC_NewParent");

                      attReq.setValue(newOU);

                      attReq.setOp(ProvisioningPlan.Operation.Set);

                      acctReq.add(attReq);

                      plan.add(acctReq);

                   }           

                }

             }

           }

        }

        if (ruleLog.isDebugEnabled()) {

ruleLog.debug("Returning plan: " + plan.toXml());

}

        return plan;

    }

---------------------------------------------################----------------------------------------------

 public List getADApps() {    

        Logger ruleLog = Logger.getLogger("RuleLog");

        List appList = new ArrayList();

        QueryOptions qo = new QueryOptions();

        qo.addFilter(Filter.eq("connector", "sailpoint.connector.ADLDAPConnector"));      

        Iterator it = context.search(Application.class, qo);

        while (it.hasNext()) {

           Application thisApplication = it.next();

           if (ruleLog.isDebugEnabled()) ruleLog.debug("Found Active Directory application " + thisApplication.getName());

           appList.add(thisApplication);

        }         

        if (appList.isEmpty()) {

           ruleLog.warn("No Active Directory applications found");

        }

        return appList;

    }

Friday, July 24, 2020

Get the users from OU

                 // fetch the service accounts from desired  OU 
public void OUSearch(String domain) throws NamingException {

System.out.println("Entering into OUSearch method : "); 
                 String searchFilter = "(&(objectClass=person))";   

SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);

NamingEnumeration<SearchResult> answer = adConnection.search(domain,
searchFilter, searchControls);
                 int i = 0; 

                 while (answer.hasMoreElements()) {                
SearchResult searchResult = (SearchResult) answer.next(); 
                 i++;
System.out.println("Name : " + searchResult.getName()); 
                 Attributes attrs = searchResult.getAttributes(); 
                 String samAccountName = getAttributeValue(attrs.get("sAMAccountName").toString());
System.out.println("SamAccountName is : " + samAccountName); }
System.out.println("Total results: " + i); 
                }

private String getAttributeValue(String input) { 

                 String[] tempArray = input.split(":"); 
                 String outPut = tempArray[1].trim(); 
                 return outPut;
                 }

                NOTE : String domain = "OU=Users,DC=XYZ,DC=com";

AD Connection

// AD Connection
private LdapContext getADConnection(final String itResource, Map<String, String> TEST_AD_IT_RESOURSE_PARAMETERS) {

logger.info("Entering into getADConnection method : ");

String adminName = null;
String adminPassword = null;
String hostName = null;
String userName = null;
String containerDN = null;
InitialLdapContext ctx = null;
TEST_AD_IT_RESOURSE_PARAMETERS = getITResourcesProperties(itResource);

if (null != TEST_AD_IT_RESOURSE_PARAMETERS && !TEST_AD_IT_RESOURSE_PARAMETERS.isEmpty()) {

hostName = TEST_AD_IT_RESOURSE_PARAMETERS.get("LDAPHostName");
userName = TEST_AD_IT_RESOURSE_PARAMETERS.get("DirectoryAdminName");
containerDN = TEST_AD_IT_RESOURSE_PARAMETERS.get("Container");

if (userName.contains("\\")) {

userName = userName.substring(userName.indexOf("\\") + 1);
userName = "cn=" + userName + ",cn=users," + containerDN;
}
adminName = userName;
adminPassword = TEST_AD_IT_RESOURSE_PARAMETERS.get("DirectoryAdminPassword");
}
if (adminPassword.equals("Null Password")) {

System.out.println("Null Password: Connection Failed");
return null;
}
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
env.put("java.naming.security.authentication", "simple");
env.put("java.naming.security.principal", adminName);
env.put("java.naming.security.credentials", adminPassword);
env.put("java.naming.provider.url", "ldap://" + hostName + ":389");

try {
ctx = new InitialLdapContext(env, null);
catch (NamingException e) {
System.out.println("Error while getting the connection :  " + e.getMessage());
}
System.out.println("AD connection is success :  ");
return ctx;
}

IAM, IGA & Identity Security

IAM sets up the employee's account so they can log in and access the application with their credentials. IGA makes sure that access requ...

Featured Articles