为 Linux KDC 领域设置 Windows 10 客户端

D. *_*ler 7 linux windows kerberos hadoop

我设置了一个 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
  }
Run Code Online (Sandbox Code Playgroud)

我还通过以下方式添加了一个testuser带密码的用户:abckadmin.local

kadmin.local:  addprinc testuser@EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)

我可以成功登录我的 Ubuntu VM:

[root@ubuntu-vm ~]# kinit testuser
Password for testuser@EXAMPLE.COM:
Run Code Online (Sandbox Code Playgroud)

然后klist显示:

[root@ubuntu-vm ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: testuser@EXAMPLE.COM

Valid starting       Expires              Service principal
01.12.2016 14:58:40  02.12.2016 14:58:40  krbtgt/EXAMPLE.COM@EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)

我可以打开我的 Kererized Hadoop UI。

================================================== ======================

问题使我的 Windows 客户端。我通过将krb5.conf文件从 KDC 机器复制到 Windows 客户端并将其重命名为kdc5.ini.

我还设置了计算机的域:

C:> Ksetup /setdomain EXAMPLE.COM
Run Code Online (Sandbox Code Playgroud)

重新启动后,我尝试通过以下方式连接到我的 KDC 领域

C:> kinit testuser@EXAMPLE.COM
Password for testuser@EXAMPLE.COM:
<empty row>
Run Code Online (Sandbox Code Playgroud)

到目前为止一切看起来都很好,但是当我打电话时,klist我只得到以下结果:

Aktuelle Anmelde-ID ist 0:0x7eca34

Zwischengespeicherte Tickets: (0)
Run Code Online (Sandbox Code Playgroud)

在英语中类似 ... cached tickets: (0)

我也无法在 Windows 客户端上打开我的网站,所以我猜是存在互操作性问题,因为我通过我的 Ubuntu 客户端连接没有任何问题。

我的浏览器 (Firefox) 应该在两台机器(Ubuntu 和 Windows)上都正确配置,我将network.negotiate-auth.trusted-uris属性设置为http://my.linux-server.de(因为我这样做了,Ubuntu 客户端可以打开该站点)。Curl 也适用于 Ubuntu,但不适用于 Windows。

更新:还尝试了第二个 Windows 客户端,但没有成功......

D. *_*ler 8

最后我让它工作了!我在 Windows 7(64 位)机器上做了以下步骤,应该也适用于 Windows 10:

  1. 这里安装 MIT Kerberos 。我采用了实际的 Windows 版本,MIT Kerberos for Windows 4.1并使用默认设置安装了它。
  2. 打开文件C:\ProgramData\MIT\Kerberos\krb5.ini并插入以下设置:

文件的新内容:

[libdefaults]
  default_realm = EXAMPLE.COM

[realms]
  EXAMPLE.COM = {
    admin_server = your.admin.server.de
    kdc = your.kdc.server.de
  }
Run Code Online (Sandbox Code Playgroud)
  1. 下载并安装实际的 Firefox 浏览器
  2. 键入about:config在Firefox浏览器的地址栏,并设置以下参数:

参数 = 值对:

network.negotiate-auth.delegation-uris = http://your.kdc.server.de

network.negotiate-auth.trusted-uris = http://your.kdc.server.de

network.auth.use-sspi = false
Run Code Online (Sandbox Code Playgroud)
  1. 重启你的电脑
  2. 使用MIT Kerberos Ticket Manager为您的用户获取新票证: 在此处输入图片说明

  3. 您应该在经理中看到您的票: 在此处输入图片说明

    8 . 现在您应该能够打开需要身份验证的网页: 在此处输入图片说明