带有Active Directory的Java GSSAPI凭据

时间:2016-12-19 03:07:24

标签: java kerberos gssapi

提前道歉 - 我对Kerberos / GSSAPI很陌生,所以我可能会收到一些非常简单的东西。

我试图从GSSAPI tutorials运行基本上是示例客户端代码。

我设置了两个VM。一个名为KDC-TESTING。它是安装了Active Directory的域控制器和名为" testuser"的用户。它在KDC.COM域上运行。

第二个是运行在KDC.COM域上运行的名为IIS-WEB的IIS服务器。

我也有我的电脑(Windows 7)。它位于不同的域中,但它目前使用域控制器的IP作为其DNS。我试图在这里从eclipse运行Basic GSSAPI客户端。

当您访问iis-web.kdc.com(来自域控制器虚拟机或我的计算机)时,系统会提示您输入用户名/密码组合。您可以使用testuser登录(显然有密码)。

当我运行客户端程序时,出现以下错误:

org.ietf.jgss.GSSException, major code: 13, minor code: 0
    major string: Invalid credentials
    minor string: SubjectCredFinder: no JAAS Subject

从这一行抛出:

GSSContext context = manager.createContext(clientName, krb5Mechanism, null, GSSContext.DEFAULT_LIFETIME);

由于它说凭据无效,我在下面添加了(并尝试使用creds而不是null创建上下文):

GSSCredential creds = manager.createCredential(clientName, GSSContext.DEFAULT_LIFETIME, krb5Mechanism, GSSCredential.INITIATE_ONLY);

几乎没有改变(堆栈跟踪除外)。

查看at this question和一堆文档/博客,我认为问题与配置有些关系,但我不确定需要准确完成哪些配置。

我已经设置了krb5.conf文件,并且我使用命令行参数shown here运行它。

我还没有在我的计算机上完成任何Kerberos设置,但是我有一个SPN来测试用户并且可能在虚拟机上设置了一个密钥表(但我几乎可以肯定那个'不是原因)。

EDIT / UPDATE:

我从一个位于KDC.COM域的新VM上运行它,并使用KDC-TESTING.KDC.COM作为其DNS,它似乎按预期工作(还有另一个错误,这次是通过身份验证 - 进度我想我知道这个错误了。

我将它作为JAR运行(而不是从eclipse中运行),并且正如预期的那样,在命令窗口中提示我输入用户名和密码。这可能是一个问题(因为,日食不能接受输入,所以它只是崩溃或什么的)?

我也没有在eclipse中看到任何安全调试日志(我一直在使用-Djava.security.debug=all),但在VM上它就在那里(有很多它)。

0 个答案:

没有答案