tutorials.de Buch-Aktion 05/2012
Like Tree3Danke
  • 1 Beitrag von Thomas Darimont
  • 2 Beitrag von Sentoo
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
1250
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Ashaman Ashaman ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    20
    Hallo,

    ich arbeite an einem Projekt und habe die Aufgabe unser Programm insofern zu modifizieren, dass es den
    Angemeldeten Benutzer abfragt zur Authentifizierung. An sich erscheint es am sinnvollsten, dass die Authentifizierung
    automatisch mit den vom Nutzer angegeben Daten beim Windows Login erfolgen sollte. Beim Programm würde sich
    dann eine Auswahl für "anmeldung über lokal/ldap" anbieten.

    An sich entspricht mein Problem diesem Thread nur dass es um eine rein Javabasierte Lösung geht und ich eben
    eine Vorauswahl für die Abfragemethode ermöglichen muß.
    http://www.tutorials.de/forum/enterp...-moeglich.html

    Nach einiger Recherche bin ich schlichtweg etwas verloren.
    Deswegen wollte ich um hilfe bitten. Vielleicht hat sich jemand schon mal mit dem Thema auseinander gesetzt.
    Bisher habe ich mir JAAS, nen bissl JGSS, Kerberos und JNDI angeschaut. Allerdings fehlt mir immer noch der Ansatz.

    1. Ich habe auch keinen schimmer wie ich die Windows Credentials nutzen kann damit der Nutzer seine Daten
    nicht erneut angeben muß.
    2. Mir ist auch etwas schleierhaft wie ich die Rolle des angemeldeten Benutzers ermitteln kann

    Wichtig ist das es eine rein clientseitige Lösung sein muß.
    Mir ist es nicht erlaubt irgendwelche tools/dienste auf den Servern zu installieren.

    Danke euch vielmals für jede hilfe. In dem Bereich bin ich noch ein Neuling.
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Ashaman bedankt sich. 
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    Ashaman Ashaman ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    20
    danke schon mal für deine schnelle reaktion

    Allerdings scheint mir der Ansatz nach erstem Lesen von meine Situation ungeeignet, da es
    um Web-Apps geht und des Weiteren ein "third party" framework ist.
    Sag mir bitte sollte ich es mißverstanden haben.

    Wie gesagt such ich einen rein auf Java basierenden Ansatz für ein Java-Programm, dass auf einem
    Rechner in einer Domain betrieben wird. Änderungen am AD sind nicht möglich oder nur minimal.

    Hauptsächlich geht es mir darum entweder den aktuell angemeldeten Benutzer zu erfahren und seine Rollen/Rechte
    oder den aktuell angemeldeten Benutzer mit seinen beim Login angegeben Daten ohne erneute angabe von
    Account/Password am LDAP zu authentifizieren.

    Eine grobe Richtung(vielleicht auch nen bissl genauer), ein Link zu tut/lib's oder ein Tip mit welchen Klassen ich
    da ran komme wäre unglaublich hilfreich.
     

  4. #4
    Avatar von Sentoo
    Sentoo Sentoo ist offline Mitglied Gold
    Registriert seit
    Jul 2009
    Ort
    Brühl
    Beiträge
    131
    Vielleicht suchst Du so etwas?
    Sun Doku: http://java.sun.com/j2se/1.5.0/docs/...kage-tree.html
    Deutsche Doku: http://www.dpunkt.de/java/Programmie...erheit/14.html

    Allerdings dabei beachten: http://lkamal.blogspot.com/2008/09/e...n-library.html
    sonst meckert dein Eclipse erstmal.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    package de.tutorials.sso;
    import com.sun.security.auth.module.NTSystem;
    import com.sun.security.auth.module.NTLoginModule;
     
    public class UserName {
     
        public static void printUserInfo() {
            NTSystem system = new NTSystem();
            System.out.println("User's name: " + system.getName());
            System.out.println("User's domain: " +system.getDomain());
        }
        
        public static void main(String[] args) {
            printUserInfo();
        }   
    }
    Thomas Darimont und Ashaman bedanken sich. 

  5. #5
    Ashaman Ashaman ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    20
    Ja das hilft mir wirklich für einen der Fälle.
    Für die lokale Variante ist das schon ideal und ausreichend, wenn ich noch die Benutzerrolle finde.

    Ich les mich jetzt erst mal ein in die entsprechenden Klassen.
    Hast du zufällig noch einen Tip wie ich aus der primaryGroupID den Gruppennamen erhalten
    bzw. aus den GroupSID's.
    Meine google suche hat bisher nur unbeantwortete Threads geliefert oder es ging Richtung LDAP abfragen mit JNDI.
    Ist das die richtige Richtung?

    Wie gesagt, bin in diesem Javabereich ein absoluter Neuling...
     

  6. #6
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    huch sorry, hab überlesen, dass du keine WEBApp baust. Willsts du nur überprüfen, ob der Benutzer in einer bestimmten AD Gruppe drin ist?
    Wenn ja könntest das über eine LDAP Abfrage realisieren, die als Suchfilter den aktuellen Benutzer und die notwendige Gruppe enthält.
    Wenn die Suchabfrage dann ein Ergebnis zurück liefert, dann ist ist der User in der gewünschten Gruppe.

    schau mal hier:
    http://www.tutorials.de/forum/java/2...-nachname.html
    http://stackoverflow.com/questions/5...-a-given-group
    http://waffle.codeplex.com/
    http://support.microsoft.com/kb/297951
    http://www.windowsitpro.com/article/...a-number-.aspx

    LDAP Abfragen kann man auch recht bequem über Springs LdapTemplate durchführen:
    http://www.tutorials.de/forum/java/2...ptemplate.html

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  7. #7
    Ashaman Ashaman ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    20
    danke

    ich les mich grad durch die Dokus und Versuche das eine oder andere.
    Bisher sieht es so aus als wäre das alles gut nutzbar um mein Problem zu lösen.

    Ich melde mich sobald ich einen genaueren überblick habe.
     

  8. #8
    Ashaman Ashaman ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    20
    Vielen Dank noch mal für eure Hilfe.

    Mit Waffle konnte ich viele der mir gestellten Aufgaben lösen.
    Eine alternative hätte ich in JAAS und JNDI gesehen allerdings wäre diese Lösung für meinen
    speziellen fall problematisch geworden (rechte und co).
     

  9. #9
    Ashaman Ashaman ist offline Mitglied
    Registriert seit
    Sep 2007
    Beiträge
    20
    So nach reichlich Arbeit funktioniert fast alles.

    Allerdings habe ich ein Problem.
    Die Anmeldung an eine Domäne (logonDomainUserEx) funktioniert nur mit dem aktuell an Windows angemeldeten Account.

    Ich benutze für diesen Teil Waffle 1.3, welches die Advapi32 api nutzt.
    Versuche ich einen anderen account mit korrekten Daten anzumelden bekomme ich immer diesen Fehler geworfen:
    "Zuordnungen von Kontennamen und Sicherheitskennungen wurden nicht durchgeführt"
    Dagegen funktioniert der vom System angelegte Administrator-Account bei der Anmeldung.

    Nach google Suche kann ich sagen, dass es nicht an einer Umbennung der entsprechenden Konten liegt.
    Ich hab viel versucht aber komme bisher noch nicht auf die Lösung.

    Kennt sich jemand mit Waffle bzw. Advapi32 aus und kennt den Fehler?

    Edit:

    Der Fehler wird in dem Teil des Logonprozesses ausgelöst:
    Code :
    1
    2
    3
    4
    
        public WindowsIdentityImpl(HANDLE windowsIdentity) {
            userGroups = Advapi32Util.getTokenGroups(windowsIdentity);
            windowsAccount = Advapi32Util.getTokenAccount(windowsIdentity); // Diese Funktion führt zu dem genannten Fehler
        }

    Mir war es möglich durch eine alternative abfrage das für mich nötige zu Ermitteln.
    Allerdings würde ich gerne verstehen warum in meiner Testumgebung es zu diesem Problem kommt.
    Geändert von Ashaman (27.04.10 um 14:50 Uhr)
     

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.02.07, 10:52
  2. Struts: Windows Credentials JAAS in Tomcat
    Von philjand im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 11.04.06, 15:41
  3. LDAP Authentifizierung über ldap_bind()
    Von FactorX im Forum PHP
    Antworten: 1
    Letzter Beitrag: 21.02.06, 16:06
  4. Subversion über LDAP authentifizieren lassen
    Von sebo85 im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 11.05.05, 14:41
  5. ASP: AD Abfrage über LDAP
    Von MrBarcode im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 19.08.04, 14:11