我设置了一个 KDC 服务器并创建了一个 Realm EXAMPLE.COM
。这是我的 krb5.conf 文件:
[libdefaults]
renew_lifetime = 7d
forwardable = true
default_realm = EXAMPLE.COM
ticket_lifetime = 24h
dns_lookup_realm = false
dns_lookup_kdc = false
default_ccache_name = /tmp/krb5cc_%{uid}
#default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
#default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5
[logging]
default = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
kdc = FILE:/var/log/krb5kdc.log
[realms]
EXAMPLE.COM = {
admin_server = my.linux-server.de
kdc = my.linux-server.de
}
我还通过以下方式添加了一个testuser
带密码abc
的用户kadmin.local
:
kadmin.local: addprinc [email protected]
我可以成功登录我的 Ubuntu 虚拟机:
[root@ubuntu-vm ~]# kinit testuser
Password for [email protected]:
然后klist
显示:
[root@ubuntu-vm ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting Expires Service principal
01.12.2016 14:58:40 02.12.2016 14:58:40 krbtgt/[email protected]
我可以打开我的 Kererized Hadoop UI。
==================================================== =======================
问题使我的 Windows 客户端。我通过将krb5.conf
文件从 KDC 机器复制到 Windows 客户端并将其重命名为kdc5.ini
.
我还设置了计算机的域:
C:> Ksetup /setdomain EXAMPLE.COM
重新启动后,我尝试通过以下方式连接到我的 KDC 领域
C:> kinit [email protected]
Password for [email protected]:
<empty row>
到目前为止一切看起来都很好,但是当我打电话时,klist
我只得到以下结果:
Aktuelle Anmelde-ID ist 0:0x7eca34
Zwischengespeicherte Tickets: (0)
在英语中类似... cached tickets: (0)
我也无法在 Windows 客户端上打开我的网站,所以我想这是一个互操作性问题,因为通过我的 Ubuntu 客户端连接没有任何问题。
我的浏览器(Firefox)应该在两台机器(Ubuntu 和 Windows)上正确配置,我将network.negotiate-auth.trusted-uris
属性设置为http://my.linux-server.de
(因为我这样做了,Ubuntu 客户端可以打开该站点)。Curl 也适用于 Ubuntu,但不适用于 Windows。
更新:还尝试了第二个 Windows 客户端但没有任何成功...
最后我让它工作了!我在 Windows 7(64 位)机器上做了以下步骤,也应该在 Windows 10 上工作:
MIT Kerberos for Windows 4.1
并使用默认设置安装了它。C:\ProgramData\MIT\Kerberos\krb5.ini
并插入以下设置:文件的新内容:
about:config
并设置以下参数:参数 = 值对:
使用
MIT Kerberos Ticket Manager
为您的用户获取新票证:您应该在管理器中看到您的票:
8. 现在您应该能够打开需要身份验证的网页: