9.11. 在 SASL 中使用 Kerberos GSS-API


Kerberos v5 必须部署到主机上,以便 Directory 服务器使用 GSS-API 机制进行 SASL 身份验证。GSS-API 和 Kerberos 客户端库必须安装在目录服务器主机上,才能利用 Kerberos 服务。

9.11.1. 目录服务器中的 SASL 的验证机制

目录服务器支持以下 SASL 加密机制:
  • PLAIN.PLAIN 为基于密码的简单验证发送明文密码。
  • 外部.与 TLS 一样,EXTERNAL 会执行基于证书的身份验证。此方法使用公钥进行更强大的身份验证。
  • CRAM-MD5.CRAM-MD5 是一个弱的、简单的挑战响应身份验证方法。它没有建立任何安全层。
    警告
    红帽建议不要使用不安全的 CRAM-MD5 机制。
  • DIGEST-MD5.DIGEST-MD5 是 LDAPv3 服务器的弱验证方法。
    警告
    红帽建议不要使用不安全的 DIGGEST-MD5 机制。
  • 通用安全服务(GSS-API)。通用安全服务(GSS)是一种安全 API,它是基于 UNIX 的操作系统访问和验证 Kerberos 服务的本地方法。GSS-API 还支持会话加密,类似于 TLS。这允许 LDAP 客户端使用 Kerberos 版本 5 凭据(反引号)与服务器进行身份验证,并使用网络会话加密。
    要使目录服务器使用 GSS-API,必须在主机中配置 Kerberos。请参阅 第 9.11 节 “在 SASL 中使用 Kerberos GSS-API”
    注意
    GSS-API 和因此,Kerberos 仅在 GSS-API 支持的平台上被支持。要使用 GSS-API,可能需要安装 Kerberos 客户端库;需要通过操作系统供应商提供所需的 Kerberos 库。

9.11.2. 关于目录服务器中的 Kerberos

在 Red Hat Enterprise Linux 中,支持的 Kerberos 库是 MIT Kerberos 版本 5。
Kerberos 的概念以及使用和配置 Kerberos 的信息包括在 MIT Kerberos 网站 http://web.mit.edu/Kerberos/ 中。

9.11.2.1. 关于 Principals 和 Realms

主体 是 Kerberos 环境中的用户或服务。 定义了 Kerberos 管理的人员可以访问什么。您要访问的客户端、KDC 和主机或服务必须使用相同的域。
注意
Kerberos 域仅支持 GSS-API 身份验证和加密,不适用于 DIGEST-MD5。
服务器使用 realm 来关联客户端的 DN,其形式类似 LDAP DN:
uid=user_name/[server_instance],cn=realm,cn=mechanism,cn=auth
Copy to Clipboard Toggle word wrap
例如,example.com 欧洲欧洲部门的 工程 领域 Mike Connors 使用以下关联来访问美国域中的服务器:
uid=mconnors/cn=Europe.example.com,cn=engineering,cn=gssapi,cn=auth
Copy to Clipboard Toggle word wrap
Babara Jensen 从 US.example.com会计 域中,在访问本地服务器时不必指定域:
uid=bjensen,cn=accounting,cn=gssapi,cn=auth
Copy to Clipboard Toggle word wrap
如果机制支持 realm,并且不使用默认域来向服务器进行身份验证,那么必须在 Kerberos 主体中指定 。否则,可以省略 realm。
注意
Kerberos 系统将 Kerberos 域视为默认域;其他系统默认为服务器。

9.11.2.2. 关于 KDC 服务器和密钥选项卡

密钥分发中心(KDC)验证用户并发出 Ticket Granting Tickets (TGT)。这可让用户使用 GSS-API 向目录服务器进行身份验证。要响应 Kerberos 操作,目录服务器需要访问其 keytab 文件。keytab 包含目录服务器用来向其他服务器进行身份验证的加密密钥。
目录服务器使用 Kerberos 主体中的 ldap 服务名称。例如:
ldap/server.example.com@EXAMPLE.COM
Copy to Clipboard Toggle word wrap
有关创建 keytab 的详情,请查看您的 Kerberos 文档。
注意
您必须为映射到现有条目可辨识名称(DN)的目录服务器 Kerberos 主体创建一个简单身份验证和安全层(SASL)映射。

9.11.3. 在目录服务器启动中配置 SASL 身份验证

SASL GSS-API 身份验证必须在 Directory 服务器中激活,以便 Kerberos 票据可用于身份验证。这可以通过为初始化脚本提供系统配置文件,以使用该文件标识设置 keytab 文件位置的变量。当初始化脚本在 Directory Server 启动时运行时,SASL 身份验证会立即激活。
默认 SASL 配置存储在 /etc/sysconfig/dirsrv 文件中。
如果有多个目录服务器实例,且没有它们都使用 SASL 身份验证,那么可以在名为 dirsrv-instance/etc/sysconfig/ 目录中创建特定于实例的配置文件。例如: dirsrv-example。如果主机上只有一个实例,可以使用默认的 dirsrv 文件。
要启用 SASL 身份验证,请取消 /etc/sysconfig/dirsrv (或实例特定)文件中的 KRB5_KTNAME 行的注释,并为 KRB5_KTNAME 变量设置 keytab 位置。例如:
# In order to use SASL/GSSAPI the directory
# server needs to know where to find its keytab
# file - uncomment the following line and set
# the path and filename appropriately
KRB5_KTNAME=/etc/dirsrv/krb5.keytab
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat