2012-11-14 106 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

是的,请参阅我的编辑。 –