使用 java 的 Kerberos 身份验证在外部网络上超时
Kerberos auth with java times out on external network
我按照这篇文章创建了一个 java 程序来测试 kerberos 身份验证:https://docs.oracle.com/javase/jndi/tutorial/ldap/security/gssapi.html
我唯一改变的是配置文件。
当我将我的 windows 客户端的 DNS 设置指向我的内部 windows DNS/Kerb 服务器时,该程序工作正常,但当我使用单独的 public 时它超时] DNS 服务器,即使:
1. 我的内部服务器打开了 tcp/udp 88 端口
2. 我的外部服务器有所需的 SRV 记录(端口 88 上的 _kerberos._tcp 和 _kerberos._udp)
3. 我能够使用我的 iPad 实现 kerberos 身份验证,使用和不使用用户证书,这是 而不是 使用我的 windows 服务器的 DNS
iPad 和我的其他客户都在使用同一个网络(我家的 wifi),我也尝试过从我的手机 phone 共享数据连接。
鉴于上面的#3 以及 java 程序在使用我的内部 DNS 的客户端上运行的事实,我有点困惑为什么我的 java 程序无法运行在这两种情况下(即使用内部或外部 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? 例如。
系统地禁用它可能是 "good practise".
我按照这篇文章创建了一个 java 程序来测试 kerberos 身份验证:https://docs.oracle.com/javase/jndi/tutorial/ldap/security/gssapi.html
我唯一改变的是配置文件。
当我将我的 windows 客户端的 DNS 设置指向我的内部 windows DNS/Kerb 服务器时,该程序工作正常,但当我使用单独的 public 时它超时] DNS 服务器,即使: 1. 我的内部服务器打开了 tcp/udp 88 端口 2. 我的外部服务器有所需的 SRV 记录(端口 88 上的 _kerberos._tcp 和 _kerberos._udp) 3. 我能够使用我的 iPad 实现 kerberos 身份验证,使用和不使用用户证书,这是 而不是 使用我的 windows 服务器的 DNS
iPad 和我的其他客户都在使用同一个网络(我家的 wifi),我也尝试过从我的手机 phone 共享数据连接。
鉴于上面的#3 以及 java 程序在使用我的内部 DNS 的客户端上运行的事实,我有点困惑为什么我的 java 程序无法运行在这两种情况下(即使用内部或外部 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? 例如。
系统地禁用它可能是 "good practise".