# 使用身份管理服务
## 用户信息和身份验证服务
### 对于集中式身份管理的需求
    现代计算机基础架构倾向于包含许多计算机,这些计算机上运行着多种服务。使本地用户账户对于所有这些计算机及其服务都保持同步是一项艰巨的任务,需要使密码保持同步就更增加了艰巨性。
    此问题的一个解决方案是,不将账户信息存储在本地系统上,而是从集中式存储检索此信息。在拥有用户信息及相关身份验证信息的情况下,集中式身份管理还可以实现名为单点登录(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 将提供所有必须的依赖关系。