有谁知道任何可嵌入的 Kerberos 服务器(KDC / KAdmin),它们是用 Java 编写的,并且可能只在 JVM 进程中运行(比如 Hadoop 微型集群或嵌入式 LDAP 服务器)?
我的目标是让人们运行需要 Kerberos 身份验证的集成测试,而无需安装本地 kerberos 服务器/配置远程服务器并连接到它。
有谁知道任何可嵌入的 Kerberos 服务器(KDC / KAdmin),它们是用 Java 编写的,并且可能只在 JVM 进程中运行(比如 Hadoop 微型集群或嵌入式 LDAP 服务器)?
我的目标是让人们运行需要 Kerberos 身份验证的集成测试,而无需安装本地 kerberos 服务器/配置远程服务器并连接到它。
你可以试试Apache Directory Server ( http://directory.apache.org/ )。它支持 LDAP 和 Kerberos。看这个例子:
我也在/正在寻找这样的东西,但这根本不可能,因为您需要一个功能齐全的 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
我为类似目的编写了一个嵌入式 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
可能对你有用。
Hadoop 发布了一个可以使用的 MiniKdc 类。来自 MiniKdc 类文档评论:
基于 Apache Directory Server 的迷你 KDC,可以嵌入到测试用例中或从命令行用作独立的 KDC。
https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-minikdc