代码之家  ›  专栏  ›  技术社区  ›  Dikla

Java中的Kerberos身份验证-Java中的“登录”操作是否等于“kinit”?

  •  5
  • Dikla  · 技术社区  · 16 年前

    1. "java.security.auth.login.config"
    2. 呼叫 LoginContext.login() 具有配置名称和自定义回调处理程序
    3. Subject.doAs() InitialLDAPContext

    2 回复  |  直到 16 年前
        1
  •  7
  •   Dikla    16 年前

    类com.sun.security.auth.module。Krb5LoginModule是Sun为Kerberos版本5协议实现的登录模块。成功身份验证后,票证授予票证(TGT)存储在主体的私有凭据集中,Kerberos主体存储在主体主体集中。

    (摘自 here )

    LoginContext.login 确实等于 kinit 在每一个之后,我们都有一个TGT。

    稍后将根据中执行的操作获取和使用服务票 Subject.doAs() .

        2
  •  0
  •   tritbit    3 年前

    永远不要使用LoginContext.login,因为它不支持Windows、Linux、MacOSX等流行操作系统的MIT Kerberos信誉缓存标准。 JavaAPI是Oracle环境的专有特性

    kinit和MIT都是C库,没有替代品可以取代它。

    如果您需要特定的TGT服务来正确执行,只需使用kinit源代码即可制作自己的模块。

    当然,您还必须使用正确的方法在没有Java模块的情况下获得TGS。 切勿在Linux/Windows中使用Jaas和krb5Module。 https://docs.oracle.com/en/java/javase/11/security/accessing-native-gss-api.html

    这很重要,除非你不想让你的KDC服务器因成千上万的请求泛滥而失败。