【问题标题】:spring-security-kerberos can't read keytab?spring-security-kerberos 无法读取密钥表?
【发布时间】:2011-09-02 21:35:03
【问题描述】:

我正在尝试关注this tutorial for spring-security-kerberos 我有一个密钥表,其中有一个主体:

ktutil:  rkt http-web.keytab
ktutil:  l
slot KVNO Principal
---- ---- ---------------------------------------------------------------------
   1    3 HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM

这个keytab是在win 2k8域控制器上用这个命令生成的:

ktpass /out http-web.keytab /mapuser aulfeldt-hta-nightly@WAD.ENG.HYTRUST.COM /princ HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM /pass *

在 spnego.xml 中使用的测试网络服务器上复制:

<bean class="org.springframework.security.extensions.kerberos.SunJaasKerberosTicketValidator">
  <property name="servicePrincipal" value="HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM" />
  <property name="keyTabLocation" value="/WEB-INF/http-web.keytab" />
  <property name="debug" value="true" />
</bean>

但找不到委托人:

Key for the principal HTTP/aulfeldt.hta.nightly@WAD.ENG.HYTRUST.COM not available in 
jndi:/localhost/spring-security-kerberos-sample-1.0.0.CI-SNAPSHOT/WEB-INF/http-web.keytab
            [Krb5LoginModule] authentication failed 
Unable to obtain password from user

我已尝试将 Web 服务器(Centos 5.5、tomcat6)加入 AD WAD.ENG.HYTRUST.COM 并且可以使用 AD 凭据登录,然后使用 /etc/krb5.keytab 中的主体来查看它是否可以被阅读......同样的回应。我还尝试了很多大写和小写名称的变体。

ps 今天早上从 git 中检查了它。

【问题讨论】:

    标签: spring-security kerberos spnego


    【解决方案1】:

    我遇到了完全相同的问题。

    问题在于您的“keyTabLocation”设置。 您不能将其设置为 /WEB-INF/http-web.keytab

    您需要将其设置为文件路径或类路径上的内容。

    例如,我将文件放在类路径中并进行了以下设置:

        <property name="keyTabLocation" value="classpath:http-web.keytab" />
    

    【讨论】:

      【解决方案2】:

      有几个错误导致“无法从用户那里获取密码”:

      1. 错误指定 keytab 文件的位置(就像 @jasop 指出);它应该是这样的 classpath:http-web.keytabfile:c:/http-web.keytabl
      2. 错误指定的主体名称(即,主体名称 与实际生成的 keytab 文件不匹配)
      3. keytab 文件路径中的空格(请注意确定这是否曾经被 已修复),- 在SPRING SECURITY KERBEROS/SPNEGO EXTENSION SpringSource 博客条目上看到 cmets 中的投诉,并在我的开发环境中收到证据 - Windows 7 / Java 6,- 必须始终考虑绝对路径(即使类路径引用的 keytab 没有空格)

      【讨论】:

      • 在我的例子中,我提供了在创建 keytab 时提供的用户名。您需要通过 SPN。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2015-07-02
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      相关资源
      最近更新 更多