Benutzer-Authentifizierung über LDAP

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Benutzer-Authentifizierung über LDAP

    Servus

    Hat jemand Ahnung wie man mittels LDAP herausfinden kann, ob sich ein Benutzer ordnungsgemäß am System angemeldet hat?
    Hab mich schon ein wenig im Inet schlau gemacht, aber so ganz funktioniert es noch nicht.

    Quellcode

    1. private void ldap(){
    2. Hashtable props = new Hashtable();
    3. props.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
    4. props.put(Context.SECURITY_AUTHENTICATION, "simple");
    5. // Benutzername
    6. props.put(Context.SECURITY_PRINCIPAL, "domain\ldap.user");
    7. // Passwort
    8. props.put(Context.SECURITY_CREDENTIALS, "password");
    9. // Der Server
    10. props.put(Context.PROVIDER_URL, "ldap://127.0.0.1:389");
    11. try {
    12. System.out.println("InitialDirContext start");
    13. InitialDirContext ctx = new InitialDirContext(props);
    14. System.out.println("InitialDirContext stop");
    15. System.out.println("NamingEnumeration start");
    16. NamingEnumeration ne = ctx.search("ldap://127.0.0.1:389/cn=users, dc=domain, dc=de"
    17. , "samaccountname=horschi", null);
    18. System.out.println("NamingEnumeration stop");
    19. SearchResult match = (SearchResult)ne.nextElement();
    20. ctx = null;
    21. System.out.println(match.getName());
    22. } catch (NamingException e) {
    23. // TODO Auto-generated catch block
    24. e.printStackTrace();
    25. }
    26. }
    Alles anzeigen


    Hoffe es findet sich jemand, der mir da weiterhelfen kann, bzw. sagen kann ich welcher Lektüre ich sowas finde

    Greetings
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung
  • hi,

    naja, welche ressourcen hast du denn durchsucht.
    Erste Anlaufstelle ist natürlich java.sun.com

    Dort habe ich folgenden Code gefunden:
    http://java.sun.com/products/jndi/tutorial/ldap/security/ldap.html#SIMPLE

    Quellcode

    1. // Set up the environment for creating the initial context
    2. Hashtable env = new Hashtable();
    3. env.put(Context.INITIAL_CONTEXT_FACTORY,
    4. "com.sun.jndi.ldap.LdapCtxFactory");
    5. env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
    6. // Authenticate as S. User and password "mysecret"
    7. env.put(Context.SECURITY_AUTHENTICATION, "simple");
    8. env.put(Context.SECURITY_PRINCIPAL, "cn=S. User, ou=NewHires, o=JNDITutorial");
    9. env.put(Context.SECURITY_CREDENTIALS, "mysecret");
    10. // Create the initial context
    11. DirContext ctx = new InitialDirContext(env);
    12. // ... do something useful with ctx
    Alles anzeigen

    sieht deinem Code recht ähnlich...

    Alternativ gibts noch das openLDAP Projekt (super dokumentiert)
    * http://www.openldap.org/jldap/overview.html
    * http://developer.novell.com/.../jldap_sample/VerifyPassword.java.html

    Hast du den Zugriff auf die Logfiles vom Server?
    Irgendwelche Meldungen?
  • Habs mitlerweile raus.
    Dein Post hat mich leider nicht wirklich weiter gebracht (wie man ja gesehen hat, war ich eigentlich genau so weit wie in deinem Beispiel).
    Bei uns in der Firma ist der Verzeichnisbaum etwas "verwirrend" aufgebaut, aber was will man machen. Daher hatte ich anfangs auch einige Probleme vom Verständins her, wie ich mich Anmelden kann usw.

    Falls es wen interessiert:
    1. Sich mit einem speziellen Benutzer anmelden, mit dem man suchen kann.
    2. suche nach dem Loginnamen (bei uns in der Firme wäre das z.B. m.mustermann) und sich den Namen des Knoten geben lassen (Sollte mit CN anfangen, in unserem Beispiel "CN=Mustermanm\, Max"
    3. sich neu versuchen am Server anzumelden, diesesmal mit "CN=Mustermann\, Max, ou=users, dc=domain, dc=de" oder sowas in der Art
    (4.) noch irgendeinen sinnlosen Zugriff auf den Baum, damit man sieht dass der user auch wirklich angemeldet ist

    Falls jemand noch etwas Code brauche ...

    Mit freundlichen Grüßen
    cr4ch
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung