Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.2. 使用 Kerberos 登录 IdM

IdM 使用 Kerberos 协议来支持单点登录。使用 Kerberos ,用户只需提供一次正确的用户名和密码,就可以访问 IdM 服务,而系统不需要再次提示输入凭证。
默认情况下,只有作为 IdM 域成员的机器才能使用 Kerberos 向 IdM 进行身份验证。但是,也可以为 Kerberos 身份验证配置外部系统;如需更多信息,请参阅 第 5.4.4 节 “配置外部系统以进行 Kerberos 身份验证到 Web UI”

使用 kinit

要从命令行登录到 IdM,请使用 kinit 工具。
注意
要使用 kinit,必须安装 krb5-workstation 软件包。
当不指定用户名时,kinit 会在当前登录到本地系统的用户的用户名下登录到 IdM。例如,如果您在本地系统中以 local_user 身份登录,运行 kinit 会尝试以 local_user IdM 用户身份进行身份验证:
[local_user@server ~]$ kinit
Password for local_user@EXAMPLE.COM:
注意
如果本地用户的用户名与 IdM 中的任何用户条目都不匹配,身份验证尝试会失败。
要以不同的 IdM 用户身份登录,请将所需的用户名作为参数传递给 kinit 工具。例如,要以 admin 用户身份登录:
[local_user@server ~]$ kinit admin
Password for admin@EXAMPLE.COM:

自动获取 Kerberos Tickets

pam_krb5 可插拔验证模块(PAM)和 SSSD 可以配置为在成功登录 IdM 客户端机器上的桌面环境后自动获取用户的 TGT。这样可确保登录后,用户不需要运行 kinit
在 SSSD 中配置了 IdM 作为身份和身份验证供应商的 IdM 系统中,SSSD 在用户使用对应的 Kerberos 主体名称登录后自动获取 TGT。
有关配置 pam_krb5 的详情,请参考 pam_krb5(8) man page。有关 PAM 的常规信息,请参阅 系统级身份验证指南

存储多个 Kerberos 票据

默认情况下,Kerberos 只会将每个登录用户的一个票据存储在凭据缓存中。每当用户运行 kinit 时,Kerberos 会使用新的票据覆盖当前存储的票据。例如,如果您使用 kinituser_A 进行身份验证,则 user_A 的票据将在以 user_B 身份再次进行身份验证后丢失。
要获取并存储用户的另一个 TGT,请设置不同的凭据缓存,这样可确保上一个缓存的内容不会被覆盖。您可以通过以下两种方式之一完成此操作:
  • 运行 export KRB5CCNAME=path_to_different_cache 命令,然后使用 kinit 获取 ticket。
  • 运行 kinit -c path_to_different_cache 命令,然后重置 KRB5CCNAME 变量。
恢复存储在默认凭证缓存中的原始 TGT:
  1. 运行 kdestroy 命令。
  2. 使用 unset $KRB5CCNAME 命令恢复默认凭证缓存位置。

检查当前登录用户

要验证当前存储并用于身份验证的 TGT,请使用 klist 工具来列出缓存的票据。在以下示例中,缓存包含 user_A 的票据,这意味着当前只允许 user_A 访问 IdM 服务:
$ klist
Ticket cache: KEYRING:persistent:0:0
Default principal: user_A@EXAMPLE.COM

Valid starting     	Expires            	Service principal
11/10/2015 08:35:45  	11/10/2015 18:35:45  	krbtgt/EXAMPLE.COM@EXAMPLE.COM