无法通过IE

时间:2017-02-14 20:56:45

标签: windows hadoop authentication hdfs kerberos

我使用kerberos认证设置我的HDFS服务,这是配置:

<property>
    <name>hadoop.http.filter.initializers</name>
    <value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>

<property>
    <name>hadoop.http.authentication.type</name>
    <value>kerberos</value>
</property>

<property>
    <name>hadoop.http.authentication.simple.anonymous.allowed</name>
    <value>false</value>
</property>

<property>
    <name>hadoop.http.authentication.signature.secret.file</name>
    <value>/opt/hadoop/hdfs/default/etc/hadoop/hadoop-http-auth-signature-secret</value>
</property>

<property>
    <name>hadoop.http.authentication.kerberos.principal</name>
    <value>HTTP/192.168.47.143@CLOUD.LOCAL</value>
</property>

<property>
    <name>hadoop.http.authentication.kerberos.keytab</name>y4
    <value>/opt/hadoop/hdfs/default/etc/hadoop/HTTP.keytab</value>
</property>

<property>
    <name>hadoop.http.authentication.cookie.domain</name>y4
    <value>CLOUD.LOCAL</value>
</property>

我可以通过运行来测试Linux环境中的身份验证:

  

$ kinit&#34; HTTP /192.168.47.143@CLOUD.LOCAL"

     

$ curl -k -v -u&#34; HTTP /192.168.47.143@CLOUD.LOCAL" - 谈判https://...:50470

这会返回好的内容。

但是当我尝试从Windows IE访问时,它会返回:

  

GSSException:未提供有效凭据(机制级别:无法找到任何Kerberos凭据)

我已经将/etc/krb5.conf从服务器复制到C:\ Windows \ krb5.ini,并将主机名添加到安全区域。我还应该做些什么让IE识别在哪里找到钥匙?

我甚至尝试安装MIT Kerberos应用程序(http://doc.mapr.com/display/MapR/Configuring+Kerberos+Authentication+for+Windows)来启用身份验证环境,但它仍然无效,我现在不知道。

1 个答案:

答案 0 :(得分:1)

Windows客户端默认情况下不需要C:\ Windows \ krb5.ini来协商Kerberos。虽然您需要它,但如果您尝试执行某些高级过程,例如在Windows系统上验证Kerberos密钥表。展望未来,如果您拥有该文件,那么保存该文件并不会造成任何损害。我认为问题实际上与IE安全区域设置有关。这可能是你可能错过的东西 - 因为这可能很棘手。

  1. http://192.168.47.143*.cloud.local添加到客户端计算机上的IE 本地Intranet 区域。
  2. 确保将Windows凭据配置为发送到Intranet区域中的远程服务器(这是默认设置)。
  3. 在IE高级选项卡下,&#34;启用集成Windows身份验证&#34;必须检查框。
  4. 我会清除IE Temporary Internet Files,然后运行klist purge,然后重新启动IE,再次测试。
  5. 请注意,Kerberos最适合使用主机名。最佳实践是避免使用IP地址。使用Kerberos,客户端必须与目标资源位于同一域中,除非(1)域之间存在可靠的可验证信任,以及(2)目标资源必须是ACL&#39 ; d允许客户端访问。否则令牌可能会遇到NTLM,在这种情况下,SPNEGO库会认为它是一个有缺陷的令牌&#34;。