# 使用身份管理服務
## 用戶信息和身份驗證服務
### 對于集中式身份管理的需求
    現代計算機基礎架構傾向于包含許多計算機,這些計算機上運行著多種服務。使本地用戶賬戶對于所有這些計算機及其服務都保持同步是一項艱巨的任務,需要使密碼保持同步就更增加了艱巨性。
    此問題的一個解決方案是,不將賬戶信息存儲在本地系統上,而是從集中式存儲檢索此信息。在擁有用戶信息及相關身份驗證信息的情況下,集中式身份管理還可以實現名為單點登錄(SSO)的功能。憑借SSO,用戶使用密碼(或其他方法)進行一次身份驗證,就可以獲得可用于自動向其他服務進行身份驗證的一種票據或 cookie。
### 用戶信息和身份驗證
集中式身份管理系統至少需要提供兩項服務:
  1.賬戶信息:這包括用戶名、主目錄位置、UID 和 GID、組成員身份等信息。常用的解決方案包括 LDAP(輕量級目錄訪問協議,用于 Active Directory 和 IPA 服務器等多個產品中)以及網絡信息服務(NIS)。
  2.身份驗證信息:系統驗證用戶身份的一種方法。這可以通過兩種方式完成:向客戶端系統提供加密密碼哈希,或向服務器發送(加密)密碼并接受響應。LDAP 服務器不僅提供賬戶信息,也提供身份驗證信息。Kerberos 僅提供 SSO 身份驗證服務,通常與 LDAP 用戶信息一起使用。Kerberos 可用于 IPA 服務器和 Active Directory。
**在 Red Hat Enterprise Linux 7 系統上,本地用戶信息由 /etc/passwd 提供,而身份驗證信息(采用哈希密碼的形式)由 /etc/shadow 提供。**
## 將系統連接到集中式 LDAP 服務器和 Kerberos 服務器
### Authconfig
將 Red Hat Enterprise Linux 7 系統配置為使用集中式身份管理服務需要編輯各種文件,以及配置某些守護進程。為連接到中央 LDAP 服務器和 Kerberos 服務器,至少需要更新以下文件:
* /etc/ldap.conf:關于中央 LDAP 服務器和 Kerberos 服務器及其設置的信息。
* /etc/krb5.conf:關于中央 Kerberos 基礎構架的信息。
* /etc/sssd/sssd.conf:用于配置系統安全服務守護進程(sssd),即負責檢索和緩存用戶信息和身份驗證的守護進程。
* /etc/nsswitch.conf:為系統指明應使用哪些用戶信息和身份驗證服務。
* /etc/pam.d/*:配置應如何處理各種服務的身份驗證。
* /etc/openldap/cacerts:用于存儲根證書頒發機構(CA),這些證書頒發機構可以驗證用來識別 LDAP 服務器的 SSL 證書。
sssd 的守護進程需要先啟用并啟動,然后才能供系統使用。
配置如此多的文件和服務很容易出錯。Red Hat Enterprise Linux 7 隨附一套工具,可以自動完成這些配置:authconfig。authconfig 包含三個全部可以執行相同操作的相關工具:
* authconfig:命令行工具。此工具可用于在多個系統間自動進行配置。與 authconfig 配合使用的命令往往都較長,其中會傳遞多個選項。此工具使用 authconfig 軟件包安裝。
* authconfig-tui:authconfig 的交互式版本,使用菜單驅動的文本界面。可通過 ssh 使用。此工具使用 authconfig 軟件包安裝。
* authconfig-gtk:此版將啟動圖形界面。它也可以作為 system-config-authentication 啟動。此工具使用 authconfig-gtk 軟件包安裝。
### 必需的 LDAP 參數
要連接到中央 LDAP 服務器以獲取用戶信息,authconfig 需要一些設置:
* LDAP 服務器的主機名稱
* 系統應在其中查找用戶的 LDAP 樹部分的 base DN(區分名稱)。這通常類似于 dc=example,dc=com 或 ou=People,o=PonyCorp。此信息將由 LDAP 服務器管理員提供。
* 如果使用 SSL/TLS 為與 LDAP 服務器的通信加密,那么 LDAP 服務器將提供可驗證證書的根 CA 證書。
重要信息:系統還需要安裝一些額外的軟件包來提供 LDAP 客戶端功能。安裝 sssd 將提供所有必須的依賴關系。