gpt4 book ai didi

java - 在同一 Java 应用程序中使用不同的 Kerberos KDC 进行身份验证

转载 作者:行者123 更新时间:2023-11-29 04:35:46 25 4
gpt4 key购买 nike

对 Kerberos 身份验证的 native Java 支持使用系统属性 java.security.krb5.kdcjava.security.krb5.realm 来指定确切要求确认的服务器用户凭据。 有什么好的方法可以在不同服务器上使用相同的应用程序进行身份验证吗?

例如我想验证服务器 peons.company.com 上的用户 smith,但 bigbosses.company.com< 上的用户 johndoe/。我可以尝试使用 System.setProperty() 来切换 KDC,但我不知道 Java Kerberos 实现是否真的支持它。更不用说它需要线程之间的同步,而且通常感觉很糟糕。

[请不要告诉我如何使用不同的服务器配置来解决这个问题,我无法控制这些。]

最佳答案

再读一遍Oracle docs -- 您需要设置这两个属性当且仅当您不能指向完整的 Kerberos 配置文件。并注意...

if you set these properties, then no cross-realm authentication is possible unless a krb5.conf file is also provided


因此,明智的做法是忘记这些属性,而是使用 java.security.krb5.conf

指向详细的自定义配置文件

Kerberos 配置将包含,除此之外,

  • 具有特定 KDC 的领域列表(主要的,以及可选的故障转移)
  • 服务器到领域的映射(如果您需要为其他服务器上经过身份验证的用户获取 Kerberos 服务票证)
  • 领域之间的信任关系(默认情况下,来自 A.COMPANY.NET 的主体尝试连接到来自 B.COMPANY.NET 的服务器必须首先跳转到根 COMPANY.NET,因此您也必须在列表中定义那个)

MIT documentation for krb5.conf有点枯燥,但谷歌会给你一些例子......

关于java - 在同一 Java 应用程序中使用不同的 Kerberos KDC 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616676/

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