当前位置: 首页 > 知识库问答 >
问题:

Gerrit 2.15.12-KerberosGSSAPI Active Directory-可能bug发送SPN

晋西岭
2023-03-14

运行在RHEL 7.5和Java 8上。Kerberos 5版本1.15.1。

我们看到了自2.11.10以来所有版本中都出现的这种设置的奇怪行为。

请注意,我无法发布直接日志或配置,因为我的公司阻止了此操作。

重现步骤

1) 配置 gerrit 以使用 kerberos

gerrit.config

[container]
javaHome = <path to JRE>
javaOptions = -Djava.security.auth.login.config=<path to jaas.conf>

[auth]
type = LDAP

[ldap]
authentication = GSSAPI
server = ldap://<AD Realm>
<.. other AD related stuff..>

jaas.conf文件

KerberosLogin {
    com.sun.security.auth.module.Krb5LoginModule
            required
            useTicketCache=true
            doNotPrompt=true
            renewTGT=true;
};

这是直接来自文档的。

2)在缓存中创建一个标签。3)尝试登录。它失败,并显示“在Kerberos数据库中找不到服务器(7)”。

如果您更改 jaas.conf 以尝试直接使用密钥表,它也会失败。

您可以使用用户名/密码直接访问LDAP,但由于公司的限制,我们不能在设备上保存未加密的密码,因此这不是一个可行的长期解决方案。

我们已经将流量的数据包捕获到AD领域,无论我们使用密钥卡还是缓存,我们都会看到相同的行为。

1) 对于 kinit,我们看到一个对 AD 的请求,其中 SPN 字段从密钥表中设置为 SPN。当然,这很好用。2) 对于来自 Gerrit 的任何请求,我们看到两个对 AD 的请求,第一个请求具有来自缓存/密钥选项卡的正确 SPN,第二个尝试发送 SPN “ldap/”,无论设置了什么 SPN 值。第二个请求是导致错误的原因,因为无法识别 SPN b AD。请注意,我们已经尝试了各种SPN(HTTP /设备,主机/设备,HTTP / device@等)的键表。每次都会发生同样的事情。

在我们的配置中,这很可能是非常简单的错误,但是我们已经为此苦恼了数周。

共有1个答案

司信厚
2023-03-14

第二个请求很可能出现,因为您指定了 LDAP 服务器 ldap://

无法识别SPN是正常的,因为Active Directory通常不使用

另请注意,密钥表本质上是静态的未加密密码。

 类似资料:
  • 本文向大家介绍phpmailer发送邮件功能,包括了phpmailer发送邮件功能的使用技巧和注意事项,需要的朋友参考一下 PHP内置的mail函数使用起来不够方便,另外受其他语言的影响,博主更偏好面向对象的包管理模式,因此phpmailer成为了我用PHP发送邮件的首选,这里分享给大家。 库导入 这里使用composer进行包管理,以下是json文件: 使用样例 测试结果 博主使用163作为发送

  • 我正在尝试使用spring Java邮件与这些属性: 代码: 但我在发送邮件时遇到了这个错误: 无法将电子邮件发送到用户'xxx@yahoo.fr',异常为:身份验证失败;嵌套异常是javax.mail.authenticationFailedException:535 5.7.0(#MBR1212)用户名或密码不正确。 我确信我的登录名/密码是正确的。我的属性不正确吗?

  • 如果我在主机上运行这个命令(ubuntu) 它发送udp数据包,端口8125上运行的dogstatsd代理将其接收,我可以看到它。但是,当我在同一台主机上的docker容器上运行以下命令时,这里是执行docker ps时容器的端口映射 这不会击中主机,也不会被8125上主机上运行的dogstatsagent捕获。这是Dockerfile中的代码公开行 我做错什么了吗?

  • 我是Kafka和quarkus的新手,我想在处理用户请求后向Kafka主题发送消息。 我已经浏览了Quarkus-快速入门中提供的kafka示例。我已经尝试使用KafkaMessage 但我得到了一个结果,那就是不断地向Kafka主题发送消息。 我想知道是否有其他方法或我的代码是否有任何问题。 帮助感谢

  • 我得到了下面的结构: 我想把这个通过一个套接字发送到服务器,请求数据。我非常希望避免任何库,比如< code>protobuf。< code >杂货类型可以是1到255之间的任何值。一些食品杂货类型,比如类型< code>128,必须提供附加信息。仅仅提供类型< code>128是不够的,我还想提供字符串形式的< code>Cheeses。也就是说,与< code>128不同,type 必须提供一

  • 在日志中,我有将近1秒(~800毫秒)的值,为什么会有这么长的执行时间?