7.3. 为 SSSD 配置身份和身份验证供应商
7.3.1. SSSD 身份和身份验证提供程序简介
SSSD 域.身份和身份验证供应商
身份和身份验证提供程序在 SSSD 配置文件中配置为 域。单个域可用作:
- 身份提供商 (用户信息)
- 身份验证提供程序 (用于身份验证请求)
- 访问控制提供程序 (用于授权请求)
- 组合这些提供程序(如果所有对应的操作都在单一服务器中执行)
您可以为 SSSD 配置多个域。必须至少配置一个域,否则 SSSD 不会启动。
/etc/sssd/sssd.conf
文件中的 access_provider
选项设置用于域的访问控制提供程序。默认情况下,选项设置为 permit
,这将始终允许所有访问。详情请查看 sssd.conf(5) man page。
代理供应商
代理供应商充当 SSSD 和 SSSD 资源之间的中间中继。使用代理供应商时,SSSD 会连接到代理服务,代理会加载指定的库。
通过使用代理供应商,您可以配置 SSSD 以使用:
- 其他验证方法,如指纹扫描仪
- 传统系统,如 NIS
- 在
/etc/passwd
和远程身份验证中定义的本地系统帐户
身份供应商可以和认证服务商组合使用
身份供应商 | 验证供应商 |
---|---|
身份管理 [a] | 身份管理 [a] |
Active Directory [a] | Active Directory [a] |
LDAP | LDAP |
LDAP | Kerberos |
proxy | proxy |
proxy | LDAP |
proxy | Kerberos |
[a]
LDAP 供应商类型的扩展。
|
请注意,本指南并不描述所有供应商类型。如需更多信息,请参阅以下其他资源:
- 要为身份管理配置 SSSD 客户端,红帽建议使用
ipa-client-install
工具。请参阅《 Linux 域身份、身份验证和策略指南》中的 安装和卸载身份管理 客户端。 - 要在没有
ipa-client-install
的情况下为 身份管理配置 SSSD 客户端,请参阅红帽知识库中的手动安装和卸载 身份管理客户端。 - 要配置与 SSSD 一起使用的 Active Directory,请参阅 Windows 集成指南 中的将 Active Directory 用作 SSSD 的身份提供程序。
7.3.2. 为 SSSD 配置 LDAP 域
先决条件
- 安装 SSSD.
# yum install sssd
配置 SSSD 以发现 LDAP 域
- 打开
/etc/sssd/sssd.conf
文件: - 为 LDAP 域创建一个
[domain]
部分:[domain/LDAP_domain_name]
- 如果您要使用 LDAP 服务器作为身份提供程序、身份验证供应商或两者,请指定它们。
- 要将 LDAP 服务器用作身份提供程序,将
id_provider
选项设置为ldap
。 - 要将 LDAP 服务器用作身份验证供应商,请将
auth_provider
选项设置为ldap
。
例如,将 LDAP 服务器用作:[domain/LDAP_domain_name]
id_provider = ldap
auth_provider = ldap
- 指定 LDAP 服务器。选择以下任意一项:
- 要显式定义服务器,使用
ldap_uri
选项指定服务器的 URI:[domain/LDAP_domain_name] id_provider = ldap auth_provider = ldap
ldap_uri = ldap://ldap.example.com
ldap_uri
选项还接受服务器的 IP 地址。但是,使用 IP 地址而不是服务器名称可能会导致 TLS/SSL 连接失败。请参阅在红帽知识库 中的证书主题名称中配置 SSSD 提供程序以使用 IP 地址。 - 要将 SSSD 配置为使用 DNS 服务发现动态发现服务器,请参阅 第 7.4.3 节 “配置 DNS 服务发现”。
另外,还可在ldap_backup_uri
选项指定备份服务器。 - 在
ldap_search_base
选项指定 LDAP 服务器的搜索基础:[domain/LDAP_domain_name] id_provider = ldap auth_provider = ldap ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
- 指定与 LDAP 服务器建立安全连接的方式。推荐的方法是使用 TLS 连接。要做到这一点,启用
ldap_id_use_start_tls
选项,并使用这些与 CA 证书相关的选项:ldap_tls_reqcert
指定客户端请求服务器证书以及在证书上执行哪些检查ldap_tls_cacert
指定包含证书的文件
[domain/LDAP_domain_name] id_provider = ldap auth_provider = ldap ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls = true
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/pki/tls/certs/ca-bundle.crt
注意SSSD 始终使用加密频道进行身份验证,这可以确保密码绝不通过网络未加密发送。使用ldap_id_use_start_tls = true
时,身份查找(如基于id
或getent
工具的命令)也被加密。 - 将新域添加到
[sssd]
部分中的domains
选项中。选项列出 SSSD 查询的域。例如:domains =
LDAP_domain_name
, domain2
其它资源
以上步骤显示了 LDAP 供应商的基本选项。如需了解更多详细信息,请参阅:
- sssd.conf(5) man page,它描述了适用于所有域的全局选项
- sssd-ldap(5) man page,它描述了特定于 LDAP 的选项
7.3.3. 为 SSSD 配置文件提供程序
文件
提供程序镜像 /etc/passwd
和 /etc/groups
文件的内容,以通过 SSSD 使这些文件中的用户和组可用。这可让您将 sss 数据库设置为 /etc/nsswitch.conf
文件中的用户和组的第一个源:
passwd: sss files group: sss files
使用这个设置时,如果在
/etc/sssd/sssd.conf
中配置了 文件
提供程序,Red Hat Enterprise Linux 会首先将用户和组的所有查询发送到 SSSD。如果 SSSD 没有运行,或者 SSSD 无法找到请求的条目,系统会返回在本地文件中查找用户和组。如果您将大多数用户和组存储在中央数据库中,如 LDAP 目录,则此设置会增加用户和组查找的速度。
先决条件
- 安装 SSSD.
# yum install sssd
配置 SSSD 以发现文件域
- 在
/etc/sssd/sssd.conf
文件中添加以下部分:[domain/files] id_provider = files
- 另外,还可在
/etc/sssd/sssd.conf
文件中将 sss 数据库设置为用户和组查找的第一个源:passwd: sss files group: sss files
- 将系统配置为在系统引导时启动
sssd
服务:# systemctl enable sssd
- 重启
sssd
服务:# systemctl restart sssd
其它资源
以上步骤显示了
文件
提供程序的基本选项。如需了解更多详细信息,请参阅:
- sssd.conf(5) man page,它描述了适用于所有域的全局选项
- sssd-files(5) man page,它描述了特定于
文件
供应商的选项
7.3.4. 为 SSSD 配置代理提供程序
先决条件
- 安装 SSSD.
# yum install sssd
配置 SSSD 以发现代理域
- 打开
/etc/sssd/sssd.conf
文件: - 为代理供应商创建一个
[domain]
部分:[domain/proxy_name]
- 指定身份验证供应商:
- 将
auth_provider
选项设置为代理
。 - 使用
proxy_pam_target
选项指定 PAM 服务作为身份验证代理。
例如:[domain/proxy_name]
auth_provider = proxy
proxy_pam_target = sssdpamproxy
重要确保代理 PAM 堆栈 不 递归包含pam_sss.so
。 - 指定身份提供程序:
- 将
id_provider
选项设置为代理
。 - 使用
proxy_lib_name
选项指定 NSS 库作为身份代理。
例如:[domain/proxy_name]
id_provider = proxy
proxy_lib_name = nis
- 将新域添加到
[sssd]
部分中的domains
选项中。选项列出 SSSD 查询的域。例如:domains =
proxy_name
, domain2
其它资源
以上步骤显示了代理供应商的基本选项。详情请查看 sssd.conf(5) man page,它描述了所有类型的域和其他代理相关的选项可用的全局选项。
7.3.5. 配置 Kerberos 身份验证供应商
先决条件
- 安装 SSSD.
# yum install sssd
配置 SSSD 以发现 Kerberos 域
- 打开
/etc/sssd/sssd.conf
文件: - 为 SSSD 域创建一个
[domain]
部分。[domain/Kerberos_domain_name]
- 指定身份提供程序。例如,有关配置 LDAP 身份提供程序的详情,请参考 第 7.3.2 节 “为 SSSD 配置 LDAP 域”。如果指定的身份提供程序中没有 Kerberos 主体名称,SSSD 会使用格式 username@REALM 构造主体。
- 指定 Kerberos 身份验证供应商详情:
- 将
auth_provider
选项设置为krb5
。[domain/Kerberos_domain_name] id_provider = ldap
auth_provider = krb5
- 指定 Kerberos 服务器:
- 要显式定义服务器,使用
krb5_server
选项。选项接受服务器的主机名或 IP 地址:[domain/Kerberos_domain_name] id_provider = ldap auth_provider = krb5
krb5_server = kdc.example.com
- 要将 SSSD 配置为使用 DNS 服务发现动态发现服务器,请参阅 第 7.4.3 节 “配置 DNS 服务发现”。
另外,还可在krb5_backup_server
选项指定备份服务器。 - 如果 Change Password 服务没有在
krb5_server
或krb5_backup_server
中指定的 KDC 上运行,使用krb5_passwd
选项指定运行该服务的服务器。[domain/Kerberos_domain_name] id_provider = ldap auth_provider = krb5 krb5_server = kdc.example.com krb5_backup_server = kerberos.example.com
krb5_passwd = kerberos.admin.example.com
如果没有使用krb5_passwd
,SSSD 将使用krb5_server
或krb5_backup_server
中指定的 KDC。 - 使用
krb5_realm
选项指定 Kerberos 域的名称。[domain/Kerberos_domain_name] id_provider = ldap auth_provider = krb5 krb5_server = kerberos.example.com krb5_backup_server = kerberos2.example.com krb5_passwd = kerberos.admin.example.com
krb5_realm = EXAMPLE.COM
- 将新域添加到
[sssd]
部分中的domains
选项中。选项列出 SSSD 查询的域。例如:domains =
Kerberos_domain_name
, domain2
其它资源
以上步骤显示了 Kerberos 供应商的基本选项。如需了解更多详细信息,请参阅:
- sssd.conf(5) man page,它描述了适用于所有域的全局选项
- sssd-krb5(5) man page,它描述了特定于 Kerberos 的选项