9

有谁知道任何可嵌入的 Kerberos 服务器(KDC / KAdmin),它们是用 Java 编写的,并且可能只在 JVM 进程中运行(比如 Hadoop 微型集群或嵌入式 LDAP 服务器)?

我的目标是让人们运行需要 Kerberos 身份验证的集成测试,而无需安装本地 kerberos 服务器/配置远程服务器并连接到它。

4

4 回答 4

6

你可以试试Apache Directory Server ( http://directory.apache.org/ )。它支持 LDAP 和 Kerberos。看这个例子:

http://svn.apache.org/repos/asf/directory/apacheds/trunk/kerberos-test/src/test/java/org/apache/directory/server/kerberos/kdc/SaslGssapiBindITest.java

于 2013-01-19T04:53:09.180 回答
0

我也在/正在寻找这样的东西,但这根本不可能,因为您需要一个功能齐全的 DNS 服务器。完全解耦的系统是必要的。您可以通过virtualbox-maven-plugin和一组具有内部网络的 VirtualBox 中的虚拟机来实现这一点。

LDAP 服务器根本不会帮助您,因为它们对 GSS-API 和 Kerberos 完全没有任何作用。SASL 通过将身份验证委托给下一个可用的 KDC 来完成所有工作。

您需要 KDC 和 DNS 服务器。您可以在一台机器上尝试 Samba 4,然后设置第二台加入域的机器。在上面安装 Hadoop,添加第三个(客户端),从那里加入并运行测试。

似乎您可以让 Apache DS 模仿 KDC:http ://directory.apache.org/apacheds/configuration/ads-2.0-configuration.html

于 2013-01-18T22:04:49.933 回答
0

我为类似目的编写了一个嵌入式 LDAP,您也可以将它用于使用 Kerberos 进行测试,这对于测试 Hadoop Kerberos 测试等情况特别有用。

https://github.com/krishdey/EmbeddedLdapKDC

您还可以查看编写嵌入式 JUnit 测试的类 https://github.com/krishdey/EmbeddedLdapKDC/blob/master/EmbeddedLdapKDC/src/test/java/com/krish/ead/server/KerberosLdapIntegrationTest.java

可能对你有用。

于 2016-11-21T17:46:17.427 回答
0

Hadoop 发布了一个可以使用的 MiniKdc 类。来自 MiniKdc 类文档评论:

基于 Apache Directory Server 的迷你 KDC,可以嵌入到测试用例中或从命令行用作独立的 KDC。

https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-minikdc

于 2018-11-26T21:17:27.973 回答