使用 AD/Kerberos 進行身份驗證/授權的 Linux 伺服器是否需要電腦帳戶?
我對使用 Active Directory (AD) 和 Kerberos 的 Linux 伺服器是否需要創建電腦帳戶感到困惑?
作為機器的 Linux 伺服器是否需要加入 AD 域,並且在這樣做時有一個電腦帳戶來獲得來自 AD 的身份驗證/授權服務?
以下是一些要求:
- 能夠使用來自 Linux 伺服器的 AD 進行基於使用者和組成員身份的身份驗證。
- 能夠將本地 linux UID/GID 號碼映射到 AD 使用者和組名(今天我們使用的是非 AD LDAP 伺服器,我們為使用者和組帳戶保留 UID/GID 號碼。理想情況下,我想繼續這種做法)。
- 能夠將 linux Sudoer 權限映射到 AD 組。
- 使用像 SSSD 這樣的開源或社區工具/外掛,而不是像 Centrify 這樣的付費商業產品。
我擔心在 AD 中為基於私有云的伺服器創建/刪除大量 linux 電腦帳戶的痛苦,這些伺服器可能不會存在那麼久;但我想要使用 AD 的中央使用者帳戶儲存的好處。
注意:我在 2008R2 功能級別使用 RHEL 和 Centos 6-7 linux 伺服器和帶有 AD 的 Windows Server 2012。
這裡有兩個不同的考慮因素:
1)身份驗證(密碼驗證)
2)授權(身份映射/組成員資格等)
對於客戶端:
您可以通過 Kerberos 從匿名客戶端(無域加入/主機憑據)進行身份驗證(密碼檢查)。但是,您將無法在沒有主機憑據 (/etc/krb5.keytab) 的情況下進行 GSSAPI SSO 和 KDC 驗證。
對於授權,您需要能夠對 AD-DC 執行 LDAP 綁定/查找。通常 AD 不允許匿名 LDAP 綁定,因此您需要某種客戶端憑據。明確創建和維護的服務帳戶或主機憑據(由域加入創建/維護)。
在您的 ldap.conf 或 sssd.conf 文件中,您可以列出明確的服務帳戶憑據或告訴它使用主機憑據。如果您有主機憑據並在 sssd 中使用“廣告”id_provider,您將獲得諸如自動主機憑據維護等優勢。
請注意,如果您想將 AD 用於您的授權服務,您需要將 rfc2307 樣式資訊(例如 uidNumber、gidNumber 等)添加到您想在 Unix/Linux 客戶端上使用的每個使用者帳戶。
對於伺服器:
如果他們要提供任何基於 Kerberized/GSSAPI 的服務,那麼他們必須擁有主機憑據(已加入域)並在 AD 的電腦帳戶中擁有有效的 UPN/SPN 記錄。將 AD 視為提供 Kerberos KDC 功能。
例如:
如果您有一個 Kerberized NFSv4 文件伺服器,那麼不僅需要有一個“host/FQDN”SPN,而且在伺服器上的帳戶和 krb5.keytab 文件中還需要有一個“nfs/FQDN”SPN。