<div dir="ltr">Thanks everyone for the responses.<div>I can't use <span style="font-family:arial,sans-serif;font-size:13px">allowtgtsessionkey on Windows, because I want to achieve a cross-platform solution. </span></div>
<div><font face="arial, sans-serif"><br></font><div style>I'll look into the option, provided by Weijun Wang and <span style="font-family:arial,sans-serif;font-size:13px">create KerberosTicket/KerberosPrincipal. I hope it would do the job.</span></div>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/6/26 Henry B. Hotz <span dir="ltr"><<a href="mailto:hbhotz@lavenderwine.com" target="_blank">hbhotz@lavenderwine.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Even easier. Just set useTicketCache=true in the JAAS config.<br>
<div class="HOEnZb"><div class="h5"><br>
On Jun 25, 2013, at 5:37 PM, Weijun Wang <<a href="mailto:weijun.wang@oracle.com">weijun.wang@oracle.com</a>> wrote:<br>
<br>
> Java (at least Oracle JDK) does not support PKINIT.<br>
><br>
> Yes, you can do it outside, create a KerberosTicket and a KerberosPrincipal, create a JAAS Subject containing them, and call Subject.doAs() later. It should work.<br>
><br>
> On Windows, if you manage to use Windows' own login and have the ticket stored inside LSA, Java should be able to read it. There is a registry key allowtgtsessionkey you need to take care of. Or maybe you can use any third party kinit to save a ccache file which can also be picked up by Java.<br>
><br>
> --Max<br>
><br>
> On 6/26/13 7:29 AM, Henry B. Hotz wrote:<br>
>> I'm not authoritative, but AFAIK there is no smart card support in Java, though there is pkcs11 support.<br>
>><br>
>> If I had to do it, I would do the smart card/PKINIT stuff outside Java, and then let Java use the acquired tgt.<br>
>><br>
>> On Jun 25, 2013, at 5:52 AM, Ostap Andrusiv <<a href="mailto:pifostap@gmail.com">pifostap@gmail.com</a>> wrote:<br>
>><br>
>>> Hi everyone,<br>
>>><br>
>>> I've been playing with smart cards and faced some issues.<br>
>>> Long story short:<br>
>>><br>
>>> Prerequisites:<br>
>>><br>
>>> • I set up a basic Kerberos realm via Windows Active Directory.<br>
>>> • I managed to successfully login into service via login/password pair using Java Kerberos(Krb5LoginModule), which is provided via JAAS.<br>
>>> Now I try to implement Kerberos login via smart card. Smart card preauthentication in Kerberos is done via AS-REQ/AS-REP messages (PA-PK-AS-REQ/P extensions). Unfortunately, JAAS Kerberos hasn't used the smartcard. As far as I have seen, there were no PA-PK-AS-REQ/P extensions in openjdk sources. Maybe, I missed something.<br>
>>><br>
>>> Question:<br>
>>><br>
>>> 1. Does Java Kerberos support smart card preauthentication out of the box?<br>
>>><br>
>>> 2. If it doesn't, can I somehow extends existing Kerberos module or should I implement whole Kerberos from the ground up?<br>
>>><br>
>>><br>
>>><br>
>>> Thanks in advance,<br>
>>> Ostap Andrusiv<br>
>>><br>
>>><br>
>>> web: <a href="http://andrusiv.com" target="_blank">http://andrusiv.com</a><br>
>>> skype: ostap.andrusiv<br>
>>> ::p!F<br>
>><br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Best regards,<div>Ostap Andrusiv<br><br>web: <a href="http://andrusiv.com" target="_blank">http://andrusiv.com</a></div><div>skype: <a>ostap.andrusiv</a></div>
<div>::p!F</div></div>
</div>