一 問題描述
CDH集群啟用 HTTP Web 控制台的 Kerberos 身份驗證后,FireFox下HTTP訪問HDFS、Yarn、Hive、HBase等Hadoop服務的Web UI(如Namenode的50070,Yarn的8088)等出現錯誤:
GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag)
二 解決方案
思路:
- windows 10 安裝kerberos客戶端
- 配置谷歌瀏覽器
- 測試
參考:https://blog.csdn.net/hadoop_sc/article/details/84108404
1. win10安裝kerberos 客戶端
1.1 下載地址:http://web.mit.edu/kerberos/dist/kfw-4.1-amd64.msi
1.2 雙擊安裝,默認下一步,選擇typical,install。
1.3 配置C:\ProgramData\MIT\Kerberos5\krb5.ini文件
將centos7 /etc/krb5.conf 中的內容:
[libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = HADOOP.COM udp_preference_limit = 1 # default_ccache_name = KEYRING:persistent:%{uid} [realms] HADOOP.COM = { kdc = duan139 admin_server = duan139 } [domain_realm] .example.com = HADOOP.COM example.com = HADOOP.COM
復制到krb5.ini中。注意:此處將標注部分拷貝至krb5.ini文件中,否則會導致MIT Kerberos無法正常啟動,如果直接將krb5.conf文件更名為ini文件並替換krb5.ini文件會出現文件格式問題導致MIT Kerberos無法正常啟動。
1.4 配置完成后,啟動MIT Kerberos客戶端
輸入centos 7上創建的用戶,可以看到獲取的Ticket。
cmd命令運行窗口:
kinit duan@HADOOP.COM
報錯:ICMP Port Unreachable,先不管。kdestroy命令為清除緩存。
2. firefox瀏覽器配置
2.1 網址欄輸入about:config
修改: network.negotiate-auth.trusted-uris = duan139
參數說明:network.negotiate-auth.trusted-uris此參數主要配置需要訪問服務的hostname,如果需要訪問多個host則以“,”分割。
修改:network.auth.use-sspi = false
3. 測試
namenode web UI :50070端口 ,正常訪問。