Entschlüsseln unter Verwendung des Spnego kerberos-ticket
Ich bin mit spnego ( http://spnego.sourceforge.net ) für die kerberos-Authentifizierung unter JBoss.
Brauche ich zum entschlüsseln kerberos-ticket für den Zugriff auf den authorization-Daten, die containt PAC-Daten. Der PAC-Daten ist notwendig, um zu entscheiden, welche Rollen sind zu gewährenden Benutzer.
Umgang und entschlüsseln kerberos-ticket? Ich habe gesucht net für die Beispiele, aber ohne Anstrengung.
InformationsquelleAutor der Frage Danubian Sailor | 2010-12-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Jungs haben ein komplettes PAC-Decodierung Umsetzung:
http://jaaslounge.sourceforge.net/
Können Sie die token-parser wie diese:
Wirst du springen müssen, obwohl Sie einige Reifen, wenn Sie möchten, zu entschlüsseln und die zugrunde liegenden Kerberos-ticket. Nicht sicher, ob Sie das brauchen.
Gewähren
InformationsquelleAutor der Antwort Grant Cermak
Habe ich erfolgreich benutzt der servlet-filter aus http://spnego.sourceforge.net in Kombination mit den PAC-parser von http://jaaslounge.sourceforge.net/ ohne die Notwendigkeit, etwas zu tun, explizit mit DER/ASN.1 Parser :
Hab ich auch geschrieben ein neues HttpFilter (entstanden aus spnego.sf.net): spnego-pac, dass uns die LogonInfo durch die getUserPrincipal().
Ein Beispiel-Projekt demonstriert den obigen code die in voller können hier gefunden werden:
https://github.com/EleotleCram/jetty-spnego-demo
Des spnego-pac-filter (im obigen Beispiel) kann hier gefunden werden:
https://github.com/EleotleCram/spnego.sf.net-fork
Hoffe, dies ist hilfreich für jedermann.
__
Marcel
InformationsquelleAutor der Antwort eleotlecram
Wenn Sie die token-Mechanismus von der
spnegoToken
wie diese:Den token-Mechanismus ist in der Regel eine
KerberosApRequest
. Es ist einKerberosToken
Konstruktor nimmt eineKerberosApRequest
. Pass einfach in dermechanismToken
byte-array zusammen mit dem Schlüssel zum entschlüsseln der Inhalte.InformationsquelleAutor der Antwort Grant Cermak
Ich meine eigene Lösung für das problem:
Habe ich basiert meine Lösung auf BouncyCastle-Bibliothek (für die Analyse Teile von token) und JaasLounge (für die Entschlüsselung von verschlüsselten Teil des Tokens). Leider, der code für die Dekodierung ganze spnego-token von JaasLounge nicht für meine Anforderungen. Ich hatte zu schreiben, es selbst.
Habe ich entschlüsselt ticket-Teil für Teil, Erstens den Bau DERObjects von byte[] array:
Die untag() ist mein Helfer-Funktion zu entfernen DERTaggedObject Verpackung
Zur Extraktion einer Sequenz der DERObject aus gegebenen DERObject ich geschrieben habe, eine weitere Hilfsfunktion:
Am Ende, wenn ich habe DEROctetStream, dass die enthaltenen verschlüsselten Teil, ich habe gerade verwendet KerberosEncData:
Byte-Sequenz, die wir empfangen von den client-browser werden analysiert, in einzelne DERApplicationSpecific
die ticket-root - Ebene 0.
Die Wurzel enthält:
Ebene 1 enthält:
Ebene 2 enthält:
0x01 0x00
analysiert als boolean (false)Ebene 3 enthält:
Ticket-Teil - Ebene 4 enthält:
Servernamen und Instanznamen
Verschlüsselten Teil-Sequenz (Stufe 5) enthält:
War das problem mit DERBoolean Konstruktor, werfen ArrayIndexOutOfBoundException, wenn die Sequenz 0x01 0x00 gefunden wurde. Ich hatte zu ändern, dass constructor:
InformationsquelleAutor der Antwort Danubian Sailor
Wow schon eine Weile, da ich habe spnego (fast ein Jahr) ... Sie Fragen, eine sehr Coole Frage.
Habe ich ein wenig Graben und im Begriff war, zu versuchen, und führen Sie bis einige code hatte ich aus eine Weile zurück, dass war die Arbeit mit MS-AD, aber einfach nicht das Gefühl es heute :-/
Jedenfalls fand ich diesen link über google:
http://www.google.com/url?sa=t&source=web&cd=1&sqi=2&ved=0CBMQFjAA&url=http%3A%2F%2Fbofriis.dk%2Ffiles%2Fms_kerberos_pac.pdf&rct=j&q=java%20kerberos%20privilege%20attribute%20certificate&ei=2FASTbaLGcP38Abk07iQDg&usg=AFQjCNHcIfQRUTxkQUvLRcgOaQksCALTha&sig2=g8yn7ie1PbzSkE2Mfv41Bw&cad=rja
Hoffentlich können Sie einige Einblicke.
InformationsquelleAutor der Antwort Dave G