5.2.3. 跨林信任的安装后注意事项
5.2.3.1. Active Directory Trust 的潜在行为问题
5.2.3.1.1. Active Directory 用户和 IdM 管理
目前,Active Directory(AD)用户和管理员只能在登录 IdM Web UI 后查看其自助服务页面。AD 管理员无法访问 IdM Web UI 的管理员视图。详情请参阅 Linux 域身份、身份验证和策略指南中的 验证 IdM Web UI 作为 AD 用户 部分。
另外,AD 用户目前无法管理自己的 ID 覆盖。只有 IdM 用户才能添加和管理 ID 覆盖。
5.2.3.1.2. 验证 Deleted ActiveActive Directorynbsp;Directory 用户
默认情况下,每个 IdM 客户端使用 SSSD 服务缓存用户身份和凭证。如果 IdM 或 AD 后端供应商暂时不可用,SSSD 可让本地系统为已经成功登录一次的用户引用身份。
因为 SSSD 会在本地维护一个用户列表,所以后端上所做的更改可能不会立即对运行 SSSD 的客户端可见。在这样的客户端中,之前登录 IdM 资源且哈希密码存储在 SSSD 缓存中的用户能够再次登录,即使其用户帐户已在 AD 中删除。
如果满足上述条件,则会将用户身份缓存在 SSSD 中,即使删除了用户帐户,AD 用户也可以登录到 IdM 资源。在 SSSD 在线并能够针对 AD 域控制器验证 AD 用户登录前,此问题会一直存在。
如果客户端系统在线运行 SSSD,则用户提供的密码由 AD 域控制器验证。这样可保证不允许已删除的 AD 用户登录。
5.2.3.1.3. credential Cache Collections 和 Selecting ActiveActive Directorynbsp;Directory Principals
Kerberos 凭证缓存尝试根据以下标识符将客户端主体与服务器主体匹配:
- 服务名称
- 主机名
- realm name
当客户端和服务器映射基于主机名或真实名称和凭据缓存集合时,可能会作为 AD 用户绑定发生意外行为。这是因为 ActiveActive Directorynbsp 的 realm 名称与 IdM 系统的域名称不同。
如果 AD 用户使用
kinit
实用程序获取 ticket,然后使用 SSH 连接到一个 IdMnbsp;IdM 资源,则这个主体不会被选择用于资源票据。一个 IdMnbsp;IdM 主体会被使用,因为 IdM 主体与资源名称匹配。
例如,如果 AD 用户是
Administrator
,且域是 ADEXAMPLE.ADREALM
,则主体是 Administrator@ADEXAMPLE.ADREALM
。
[root@server ~]# kinit Administrator@ADEXAMPLE.ADREALM Password for Administrator@ADEXAMPLE.ADREALM: [root@server ~]# klist Ticket cache: KEYRING:persistent:0:0 Default principal: Administrator@ADEXAMPLE.ADREALM Valid starting Expires Service principal 27.11.2015 11:25:23 27.11.2015 21:25:23 krbtgt/ADEXAMPLE.ADREALM@ADEXAMPLE.ADREALM renew until 28.11.2015 11:25:16
在 ActiveActive Directorynbsp;Directory ticket 缓存中设置为默认主体。但是,如果任何 IdM 用户也具有 Kerberos ticket(如
admin
),则有一个单独的 IdM 凭证缓存,并有一个 IdMnbsp;IdM 默认主体。如果 ActiveActive Directorynbsp;Directory 用户使用 SSH 连接到资源,则 IdM 默认主体会被选择为主机 ticket。
[root@vm-197 ~]# ssh -l Administrator@adexample.adrealm ipaclient.example.com Administrator@adexample.adrealm@ipaclient.example.com's password: [root@vm-197 ~]# klist -A Ticket cache: KEYRING:persistent:0:0 Default principal: Administrator@ADEXAMPLE.ADREALM Valid starting Expires Service principal 27.11.2015 11:25:23 27.11.2015 21:25:23 krbtgt/ADEXAMPLE.ADREALM@ADEXAMPLE.ADREALM renew until 28.11.2015 11:25:16 Ticket cache: KEYRING:persistent:0:0Default principal: admin@EXAMPLE.COM
>>>>> IdM user Valid starting Expires Service principal 27.11.2015 11:25:18 28.11.2015 11:25:16 krbtgt/EXAMPLE.COM@EXAMPLE.COM27.11.2015 11:25:48 28.11.2015 11:25:16 host/ipaclient.example.com@EXAMPLE.COM
>>>>> host principal
这是因为 IdM 主体的域名与 IdM 资源域匹配。
5.2.3.1.4. 解析组 SID
丢失 Kerberos 票据
运行 命令从 Samba 服务获取 SID(如 net getlocalsid 或 net getdomainsid ),会从 Kerberos 缓存中删除任何现有的管理票据。
注意
您不需要为使用 Active Directory 信任而运行命令,如 net getlocalsid 或 net getdomainsid。
无法为用户验证组成员身份
无法验证特定可信用户是否与特定的 IdM 组(外部或 POSIX)关联。
无法为 ActiveActive Directorynbsp;Directory 组成员资格显示 Remote ActiveActive Directorynbsp;Directory User
重要
请注意,如果 IdM 服务器和客户端在 Red Hat Enterprise Linux 7.1 或更高版本上运行,则此问题不再会发生。
id
实用程序可用于显示 Linux 系统用户的本地组关联。但是,id
不显示 Active Directory 用户的 Active Directory 组成员资格,即使 Samba 工具确实显示了这些用户。
要临时解决这个问题,您可以使用
ssh
工具作为给定的 AD 用户登录到 anan IdMnbsp;IdM 客户端机器。在 AD 用户第一次成功登录后,id
搜索会检测并显示 AD 组成员资格:
[root@ipaserver ~]# id ADDOMAIN\user uid=1921801107(user@ad.example.com) gid=1921801107(user@ad.example.com) groups=1921801107(user@ad.example.com),129600004(ad_users),1921800513(domain users@ad.example.com)