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

带有java的Kerberos身份验证在外部网络上超时

孟茂
2023-03-14

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

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

当我将windows客户端的DNS设置指向内部windows DNS/Kerb服务器时,该程序运行良好,但当我使用单独的公共DNS服务器时,该程序会超时,即使:1.我的内部服务器打开了tcp/udp 88端口2.我的外部服务器具有所需的SRV记录(\u kerberos.\u tcp和\u kerberos.\u udp在端口88上)3.我能够实现kerberos身份验证,无论是否有用户证书,使用未使用windows服务器DNS的iPad

iPad和我的其他客户都在使用同一个网络(我家的wifi),我也尝试过通过手机共享数据连接。

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

你有什么建议吗?

共有1个答案

夏侯鹏
2023-03-14

来自GitBook Hadoop和Kerberos:门之外的疯狂部分错误消息给恐惧

将Kerberos切换为使用TCP而不是UDP会使[一些奇怪的问题]消失…
注意,UDP超时的速度要慢得多…Kerberos在超时之前等待约90秒,这需要很长时间才能注意到出现问题。。。

在.conf中

[libdefaults]
  udp_preference_limit = 1

PS:“超时前约90秒”可能具体指Java特定的默认值,即

kdc_timeout = 30000
max_retries = 3
 类似资料:
  • 是否可以使用Kerberos但不使用JAAS来验证用户/密码?

  • 我正在运行一个squid代理服务器(CentOS 5),我正试图通过我们的AD服务器(Windows server 2008)使用kerberos。 我遵循了以下说明:http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos 为服务器设置一个keytab,这一切都运行良好。 当我尝试从客户端PC使用代理时,会出现问题,它会立即

  • 15/02/06 15:17:12警告IPC.Client:连接到服务器时遇到异常:javax.security.sasl.saslexception:GSS initiate失败[由GSSException:未提供有效凭据(机制级别:找不到任何Kerberos tgt导致)]LS:本地异常失败:java.io.ioException:javax.security.sasl.saslexcepti

  • 我正在开发一个Web应用程序,它是rest客户端并使用rest服务(API)来执行任何操作。我集成了apache shiro以使用工作正常的jdbc领域执行身份验证。 现在,我正在寻找一种使用apacheDS LDAP执行身份验证的解决方案。我计划使用kerberos身份验证,但我没有找到任何有用的文章或示例来使用apache shiro实现kerberos身份验证。 我发现apache shir

  • 使用这个例子,我的连接几乎可以工作 http://blogs.nologin.es/rickyepoderi/index.php?/archives/105-oracle-driver-and-kerberos.html 我使用的是Java7,但使用另一个没有问题。有没有一种方法可以用jvm正确读取票证(参见jdk中的kinit不要创建正确的票证)

  • 我有一个REST服务,它依赖于外部系统来验证令牌,但需要自己进行授权(使用like@Secured进行API级访问)。 要求: UI使用外部系统生成令牌 一种可能的解决方案是使用过滤器: > UI使用外部系统生成令牌 UI使用令牌对我的服务进行REST调用 我的服务有一个过滤器,它使用令牌调用外部系统 有效令牌的外部系统发回用户详细信息 我对成功呼叫集的服务与SecurityContextHold