Kerberos-Authentifizierung in Java - bedeutet „Login“ -Aktion in java gleich zu „kinit“?
Frage
I GSSAPI in Java anmelden, um zu einem LDAP-Server mit Kerberos-Authentifizierung bin mit. Ich bin ein Neuling auf Kerberos, so tut mir leid, wenn dies eine offensichtliche Frage, aber ich kann nichts klar genug im Internet finden.
ich die folgenden Schritte aus:
- Definieren Sie Login-Konfiguration, indem Sie die Systemeigenschaft
"java.security.auth.login.config"
in die Konfigurationsdatei Pfad zu setzen. - Anruf
LoginContext.login()
mit dem Namen der Konfiguration und ein selbstdefinierte Callback-Handler - Falls die Anmeldung erfolgreich „so tun, als“ das Subjekt (von
Subject.doAs()
verwendet wird), und auf den LDAP-Server verbinden, indem Sie einen neuenInitialLDAPContext
mit den entsprechenden Umgebungsvariablen zu schaffen.
Nun, Mein Problem ist, ich verstehe nicht, welcher Schritt korreliert mit dem Handeln KERBEROS? Ist es richtig, nach der Login Aktion zu sagen, dass ich nur ein TGT hat? Wann muss ich den Dienst spezifischen Ticket?
Danke, Dikla
Lösung
Die Klasse com.sun.security.auth.module.Krb5LoginModule ist Suns Implementierung eines Login-Modul für die Version 5-Protokoll Kerberos. Nach erfolgreicher Authentifizierung des Ticket Granting Ticket (TGT) in dem Betreff des privaten Anmeldeinformation festgelegt und der Kerberos-Principal wird in der Betreffzeile im Hauptsatz gespeichert wird.
(Aus hier )
Das bedeutet, dass LoginContext.login
in der Tat gleich ist, dass nach jedem von ihnen kinit
, haben wir eine TGT.
Der Service Ticket wird später erhalten und verwendet wird - nach der Aktion in Subject.doAs()
ausgeführt