ActivDirectory via LDAP ins Notes lesen

  • Nein, weil Du via LDAP die Daten nicht ins Notes "lesen" kannst.


    WAS willst Du damit erreichen? Lies dir mal die Kapitel "AD Syncronisation" bzw. Directory Assistance in der Admin-Hilfe durch.

  • Hallo both


    Ich möchte keine Synchronization mit dem AD.


    Das ganze soll als online Informationssystem dienen, dabei möchte ich die Personen/Gruppen-Informationen abfragen, welche von AD und Notes her kommen.


    Notes soll das Master-System sein, als alle Informationen sollen von dem her abgefragt werden können.


    Gruss, Dave

  • Ok, hier nochmals meine Fragestellung, jetzt hoffentlich für alle verständlich....


    Ich möchte eine online Abfrage mit Notes realisieren, welche mir die Daten vom AD ausgibt.


    Dies möchte ich mit einem LDAP-Connect aus Notes auf einen ADAM-Server (1:1 Abbild vom produktiven AD) machen.


    Das ist schon der richtige Weg, oder hat mir da eine bessere Lösung?
    Oder generell gefragt, hat sowas schon jemand von euch gemacht?



    Danke und Gruss, Dave

  • LDAP-Connect geht nur von einem Java.Agent aus.


    Du kannst aber über Directory Assistance das AD via LDAP einbinden. Wie das geht, steht in der Admin-Hilfe. Dann kannst Du auf dieses wie auf ein "normales" Adressbuch zugreifen.

  • Hallo


    Ich habe mich durch Java "gerungen" und es zustande gebracht, dass mir ein Java-Agent aus Notes die gewünschten User aus dem Notesadressbuch und dem Active Directory anzeigt.


    Ok, es sind erst die Agents die funktionieren.
    Jetzt muss noch ein anständiges Web-GUI her, damit das auch einbisschen daher kommt.


    Danke für die Hilfe.


    Schönes Weekend und Gruss aus Luzern,
    Dave

  • Hier der Code:
    **************START******************


    import lotus.domino.*;
    import java.util.Hashtable;
    import javax.naming.Context;
    import javax.naming.directory.InitialDirContext;
    import javax.naming.directory.DirContext;
    import javax.naming.directory.Attributes;
    import javax.naming.directory.SearchControls;
    import javax.naming.directory.SearchResult;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import java.util.Vector;


    public class JavaAgent extends AgentBase {


    public void NotesMain() {


    try {
    Session session = getSession();
    AgentContext agentContext = session.getAgentContext();

    System.out.println("Hashtabelle fuer Properties");
    Hashtable env = new Hashtable(11);


    System.out.println("INITIAL_CONTEXT_FACTORY : com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");


    System.out.println("PROVIDER_URL : ldap://SERVERNAME:PORT/");
    env.put(Context.PROVIDER_URL,"ldap://SERVERNAME:PORT/");

    String adminName = "CN=USERNAME,OU=XXX,dc=XXX,dc=XX";
    String adminPasswort = "PASSWORT";


    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, adminName);
    env.put(Context.SECURITY_CREDENTIALS, adminPasswort);


    System.out.println("Context");
    try {
    // initialisieren des Contextes
    System.out.println("Initialisieren des Contextes");
    DirContext ctx = new InitialDirContext(env);


    // Suchparameter
    SearchControls constraints = new SearchControls();
    String searchBase = "SUCHSTRING" ;
    String searchFilter = "(&(objectClass=SEARCHCLASS)(mail=*hans*))";

    // Auch Unterebenen durchsuchen
    constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);


    // Suche starten mit den Argumenten (searchBase, searchFilter, searchCtl)
    NamingEnumeration results = ctx.search(searchBase, searchFilter, constraints);


    System.out.println("Results: " + results.hasMore());


    int totalResults = 0;

    // Durch alle gefundenen Datensätze durchgehen
    while (results.hasMoreElements()) {
    // Das nächste Ergebnis aussuchen
    SearchResult si = (SearchResult) results.next();
    totalResults++;
    System.out.println(">> " + si.getName());
    // Attribute
    Attributes attrs = si.getAttributes();
    }
    System.out.println("Total results: " + totalResults);

    // Verbindung trennen
    ctx.close();
    } catch (NamingException e) {
    System.err.println("Problem : " + e);
    }
    session.recycle();
    } catch(Exception e) {
    e.printStackTrace();
    }
    }
    }


    ***************ENDE******************


    Angepasst werden müssen folgende Zeilen:


    System.out.println("PROVIDER_URL : ldap://SERVERNAME:PORT/");
    env.put(Context.PROVIDER_URL,"ldap://SERVERNAME:PORT/");


    String adminName = "CN=USERNAME,OU=XXX,dc=XXX,dc=XX";
    String adminPasswort = "PASSWORT";


    String searchBase = "SUCHSTRING" ;
    String searchFilter = "(&(objectClass=SEARCHCLASS)(mail=*hans*))";



    Gruss, Dave