如何使用Krb5LoginModule并在unix中为其提供用户/传递

时间:2012-11-14 20:10:28

标签: security kerberos jaas

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

1 个答案:

答案 0 :(得分:1)

这不是你应该去的方式。人类本身应该在Windows登录时获得TGT。您访问TGT然后从KDC获取服务票证。 如果你的unix设置没有使用winbind来执行auth,那么你就无法访问预先填充的凭据缓存,你有三个选择:

  1. 使用winbind管理AD中的unix用户
  2. 执行unix kinit
  3. Username和/或PasswordCallback传递给new LoginContext
  4. 我赞成1或2。

    选项二在Java中可以这样工作:

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

    现在,凭据缓存中有一个本机有效的TGT。 Java现在可以选择这个并请求进一步的服务票据。