0

我需要在 unix 机器上使用 kerberos 登录才能使用 windows 网络调用 URL。我可以在 Windows 中使用 useTicketCache=true 并且一切正常。如何从 unix 框中执行此操作,然后将用户/传递给我的 java 程序而不是使用票证缓存?

4

1 回答 1

1

这不是你应该走的路。人自己应该在 Windows 登录时获得 TGT。您访问 TGT,然后从 KDC 获得服务票证。如果您的 unix 设置不使用 winbind 执行身份验证,因此您无权访问预填充的凭据缓存,您有三个选项:

  1. 在 AD 中使用 winbind 管理您的 unix 用户
  2. 执行一个unixkinit
  3. 将 aUsername和/或传递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 现在可以选择它并请求进一步的服务票证。

于 2012-11-14T21:29:36.667 回答