2012-11-14 38 views
0

用戶名/密碼,我需要使用UNIX機器上的Kerberos調用使用Windows網絡URL登錄。我可以在窗口中使用useTicketCache = true,並且一切正常。我如何從unix框中執行此操作,並將用戶/傳遞傳遞給我的java程序而不是使用票據緩存?如何使用Krb5LoginModule,並給它在UNIX

回答

1

這不是你應該去的方式。人類本身應該在Windows登錄時獲得TGT。您訪問TGT,然後從KDC獲取服務票據。 如果您的UNIX安裝程序不使用winbind的進行身份驗證,所以您不必訪問預填充憑據緩存,你有三種選擇:

  1. 使用winbind的管理您的UNIX用戶在AD
  2. 執行unix kinit
  3. 通過Username和/或PasswordCallbacknew LoginContext

我贊成1或2

第二個辦法會喜歡這個工作,從Java:

Runtime.exec("kinit " + upn); 
// Obtain the input stream of the forked process 
is.write(password); 
// Check exit code 

現在,你在你的憑據緩存具有天然有效的TGT。 Java現在可以選擇並請求進一步的服務票據。

+0

感謝您的信息,是有辦法,我可以打電話的kinit,並給它,我有我的krb5.ini文件中的信息?我需要root來做到這一點嗎? –

+0

是的,請參閱我的編輯。 –