提前道歉 - 我对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上它就在那里(有很多它)。