gpt4 book ai didi

java - 使用 java 的 Kerberos 身份验证在外部网络上超时

转载 作者:行者123 更新时间:2023-12-02 10:09:41 27 4
gpt4 key购买 nike

我按照这篇文章创建了一个用于测试kerberos身份验证的java程序:https://docs.oracle.com/javase/jndi/tutorial/ldap/security/gssapi.html

我唯一改变的是配置文件。

当我将 Windows 客户端的 DNS 设置指向内部 Windows DNS/Kerb 服务器时,该程序工作正常,但当我使用单独的公共(public) DNS 服务器时,程序会超时,即使:1.我的内部服务器打开了端口 tcp/udp 882. 我的外部服务器具有所需的 SRV 记录(端口 88 上的 _kerberos._tcp 和 _kerberos._udp)3. 我能够使用我的 iPad 实现 kerberos 身份验证(无论是否有用户证书),但使用 Windows 服务器的 DNS

iPad 和我的其他客户端都使用相同的网络(我的家庭 WiFi),并且我也尝试过共享手机的数据连接。

鉴于上面的#3以及java程序从使用我的内部DNS的客户端工作的事实,我有点困惑为什么我的java程序在这两种情况下都不能工作(即使用内部或外部DNS) DNS 服务器)。

你有什么建议吗?

最佳答案

来自 GitBook Hadoop 和 Kerberos:门外的疯狂 部分 Error Messages to Fear

Switching Kerberos to use TCP rather than UDP makes [some bizarre issues] go away ...
Note also UDP is a lot slower to time out ... Kerberos waits ~90 seconds before timing out, which is a long time to notice there's a problem ...

In /etc/krb5.conf

[libdefaults]
udp_preference_limit = 1

PS:“超时前约 90 秒” 可能特指 Java-specific defaults

kdc_timeout = 30000
max_retries = 3

<小时/>一般来说,UDP 似乎是许多奇怪的 Kerberos 问题的根本原因,参见 How to save Kerberos Service Ticket using a Windows Java client?例如。
系统地禁用它可能是一个“好的做法”。

关于java - 使用 java 的 Kerberos 身份验证在外部网络上超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55089191/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com