69.8. 如果 AD 用户条目不包含证书或映射数据,则配置证书映射
如果 IdM 部署与 Active Directory(AD)信任时,此用户故事描述了在 IdM 中启用证书映射所需的步骤,此用户存储在 AD 中,AD 中的用户条目既包含整个证书,也不包含证书映射数据。
先决条件
- 用户在 IdM 中没有帐户。
-
用户在 AD 中有一个帐户,它不包含整个证书和
altSecurityIdentities 属性
,即 IdMcertmapdata
属性的 AD 等效。 IdM 管理员已完成了以下操作之一:
-
将整个 AD 用户证书添加到 IdM 中的 AD
用户 ID 覆盖
中。 - 创建一个映射到证书中备用字段的证书映射规则,如 Subject Alternative Name 或用户的 SID。
-
将整个 AD 用户证书添加到 IdM 中的 AD
69.8.1. 在 IdM Web UI 中添加一个证书映射规则 复制链接链接已复制到粘贴板!
- 以管理员身份登录 IdM Web UI。
-
导航到
Authentication
Certificate Identity Mapping Rules
Certificate Identity Mapping Rules
。 单击
Add
。图 69.9. 在 IdM Web UI 中添加一个新的证书映射规则
- 输入规则名称。
输入映射规则。与存储在 IdM 中的 AD 用户条目的用户 ID 覆盖条目中的证书相比,为 IdM 提供整个证书进行身份验证:
(userCertificate;binary={cert!bin})
(userCertificate;binary={cert!bin})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意因为证书还包含作为 SAN 的用户主体名称或最新更新、证书 SID 扩展中的用户的 SID ,所以您也可以使用这些字段将证书映射到用户。例如,如果使用用户的 SID,请将此映射规则替换为
LDAPU1:(objectsid={sid})
。有关证书映射的更多信息,请参阅您系统上的sss-certmap
手册页。输入匹配的规则。例如,只允许
AD.EXAMPLE.COM
域的AD-ROOT-CA
发布的证书进行身份验证:<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入域名。例如,要在
ad.example.com
域中搜索用户:图 69.10. 没有证书或映射数据的用户的证书映射规则
-
单击
Add
。 系统安全服务守护进程(SSSD)定期重新读取证书映射规则。要强制立即载入新创建的规则,在 CLI 中重启 SSSD:
systemctl restart sssd
# systemctl restart sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
69.8.2. 在 IdM CLI 中添加证书映射规则 复制链接链接已复制到粘贴板!
获得管理员凭证:
kinit admin
# kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入映射规则以及映射规则所基于的匹配规则。要获得与存储在 IdM 中的 AD 用户条目的用户 ID 覆盖条目中的证书相比的用于认证的整个证书,只允许
AD.EXAMPLE.COM
域的AD-ROOT-CA
发布的证书进行验证:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意因为证书还包含作为 SAN 的用户主体名称或最新更新、证书 SID 扩展中的用户的 SID ,所以您也可以使用这些字段将证书映射到用户。例如,如果使用用户的 SID,请将此映射规则替换为
LDAPU1:(objectsid={sid})
。有关证书映射的更多信息,请参阅您系统上的sss-certmap
手册页。系统安全服务守护进程(SSSD)定期重新读取证书映射规则。要强制立即载入新创建的规则,重启 SSSD:
systemctl restart sssd
# systemctl restart sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
69.8.3. 在 IdM Web UI 中添加证书到 AD 用户的 ID 覆盖中 复制链接链接已复制到粘贴板!
-
导航到
Identity
ID Views
Default Trust View
。 单击
Add
。图 69.11. 在 IdM Web UI 中添加一个新的用户 ID 覆盖
-
在
User to override
字段中,输入ad_user@ad.example.com
。 将
ad_user
的证书复制并粘贴到Certificate
字段中。图 69.12. 为 AD 用户配置用户 ID 覆盖
-
单击
Add
。
验证
验证用户和证书是否已链接:
使用
sss_cache
程序在 SSSD 缓存中使ad_user@ad.example.com
记录无效,并强制重新载入ad_user@ad.example.com
信息:sss_cache -u ad_user@ad.example.com
# sss_cache -u ad_user@ad.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用包含 AD 用户证书的文件名称运行
ipa certmap-match
命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
输出确认,您具有的证书验证数据被添加到 ad_user@ad.example.com
,并存在在 Adding a certificate mapping rule if the AD user entry contains no certificate or mapping data 中定义的相应的映射规则。这意味着,您可以使用与定义的证书映射数据匹配的证书作为 ad_user@ad.example.com
进行身份验证。
69.8.4. 在 IdM CLI 中在 AD 用户的 ID 覆盖中添加证书 复制链接链接已复制到粘贴板!
获取管理员凭证:
kinit admin
# kinit admin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将证书 blob 保存在名为
CERT
的新变量中:CERT=$(openssl x509 -in /path/to/certificate -outform der|base64 -w0)
# CERT=$(openssl x509 -in /path/to/certificate -outform der|base64 -w0)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ipa idoverrideuser-add-cert
命令将ad_user@ad.example.com
的证书添加到用户帐户中:ipa idoverrideuser-add-cert ad_user@ad.example.com --certificate $CERT
# ipa idoverrideuser-add-cert ad_user@ad.example.com --certificate $CERT
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证用户和证书是否已链接:
使用
sss_cache
程序在 SSSD 缓存中使ad_user@ad.example.com
记录无效,并强制重新载入ad_user@ad.example.com
信息:sss_cache -u ad_user@ad.example.com
# sss_cache -u ad_user@ad.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用包含 AD 用户证书的文件名称运行
ipa certmap-match
命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
输出确认,您具有的证书验证数据被添加到 ad_user@ad.example.com
,并存在在 Adding a certificate mapping rule if the AD user entry contains no certificate or mapping data 中定义的相应的映射规则。这意味着,您可以使用与定义的证书映射数据匹配的证书作为 ad_user@ad.example.com
进行身份验证。