我正在使用JAAS獲取Kerberos憑證。我的配置文件是這樣的:如何保存在其他機器上使用的Kerberos私人憑證
SignedOnUserLoginContext
{
com.sun.security.auth.module.Krb5LoginModule required debug=true useTicketCache=true doNotPrompt=true;
};
代碼即可獲得Kerberos憑據
try {
LoginContext lc = new LoginContext("SignedOnUserLoginContext");
lc.login();
Subject signedOnUserSubject = lc.getSubject();
Set<Object> privateCred = signedOnUserSubject.getPrivateCredentials();
for (Object privates : privateCred) {
if (privates instanceof KerberosTicket) {
KerberosTicket ticket = (KerberosTicket)privates;
return ticket.getEncoded();
}
}
}
當我把車票給其他機器,並使用JAAS使用Kerberos登錄轉讓,它沒有得到驗證。在接受我的配置文件:
KrbLogin{
com.sun.security.auth.module.Krb5LoginModule required
principal=principal[email protected]
useTicketCache="FILE:///where i store the ticket"
};
我懷疑我不能只是得到這樣的票,但需要獲得()的返回getPrivateCredentials整個私有憑證。另外,使用doNotPrompt = true和useTicketCache = true我試圖從Windows緩存中獲取。
我some Java security book讀到私有證書可以包括其他數據如私人密鑰,加密密鑰,密碼等等
因此,我需要得到getPrivateCredentials的返回值()。如何將getPrivateCredentials()返回的內容轉換爲實際的Kerberos憑證文件。我閱讀爲了訪問這些數據,我需要使用PrivateCredentialPermission模塊。有沒有例子說明如何做到這一點?的Kerberos
你的問題是在屁股疼痛,並不打算與Kerberos完成。在你打算使用TGT的機器上執行kinit。更重要的是,JGSS不提供用於導出憑證的高級API。麻省理工學院的Kerberos。 –