當使用者儲存在 AD 中時,Windows 機器能否使用 Kerberos 對 Samba 進行身份驗證?
我知道標題可能不太清楚,但我想不出更好的了。
我們有兩個域,我們稱它們
example.com
為subnet.example.com
. 前者由 Active Directory 伺服器管理,並包含一些伺服器以及所有 Windows 客戶端。後者容納了許多 Unix 機器(主要是 Solaris)。SUBNET.EXAMPLE.COM
從領域到存在單向信任EXAMPLE.COM
。使用此設置,通常的東西可以正常工作,例如 ssh 登錄、NFSv4 等。
現在,我想做的是在
subnet.example.com
. Windows 使用者應該能夠訪問這些伺服器上的文件。我在 Samba 中設置了 Kerberos 身份驗證,它可以在任何 Linux 客戶端上完美執行。當我有一個 Kerberos TGT 時,我可以訪問這些機器
smbclient
,如果我放棄它,它就會停止工作。使用者映射完全按預期工作。這些機器cifs/hostname
在 MIT Kerberos 伺服器中有條目。但是,Windows 客戶端無法做到這一點。查看 Samba 日誌時,我可以看到 Samba 伺服器嘗試與 AD 伺服器通信,但由於 Samba 伺服器尚未加入 AD 域,因此不允許這樣做。
所以,我聽到你問:“你為什麼不直接加入 AD 域?” . 答案是我不能這樣做,因為子網上的系統是正在安裝和重新安裝的測試系統,通常每天多次,我們不希望有 AD 管理員配置它(並刪除它們以及)每次安裝或離線測試系統時。
此外,對於 Linux 客戶端來說,一切都很完美,這讓我相信應該有可能讓它以某種方式工作。
所以,我的問題是:這甚至可能嗎?Windows 中是否有一些限制阻止它們成為普通 Kerberos 領域中的客戶端?如果是這樣,解決此問題的最佳方法是什麼?
我解決了這個問題。問題是 Windows 客戶端不知道它
subnet.example.com
屬於不同的領域。解決方案是將此通知客戶。可以使用以下兩個命令來完成,我相信這類似於在krb5.conf
Unix 系統上添加域資訊:ksetup /addkdc SUBNET.EXAMPLE.COM hostname.of.kerberos.server ksetup /addhosttorealmmap .subnet.example.com SUBNET.EXAMPLE.COM
在我這樣做之後,客戶端身份驗證按預期工作。