Red Hat Training

A Red Hat training course is available for RHEL 8

第 53 章 在身份管理中配置证书映射规则

53.1. 用于在智能卡上配置验证的证书映射规则

证书映射规则是一种便捷的方式,当身份管理(IdM)管理员无法访问某些用户的证书时,用户可以轻松使用证书进行身份验证。缺少访问权限通常是因为证书是由外部证书认证机构颁发的。特殊用例由 Active Directory(AD)发布的证书组成,IdM 域与之建立信任关系。

如果 IdM 环境较大且有大量使用智能卡的用户,使用证书映射规则就会比较方便。在这种情况下,添加完整证书可能会比较复杂。在大多数情况下,主题和发行者是可预测的,因此与完整证书相比,提前添加更容易。作为系统管理员,您可以创建证书映射规则,并在向特定用户签发证书之前,为用户条目添加证书映射数据。签发证书后,用户可以使用该证书登录,即使完整证书尚未上传到用户条目。

此外,由于证书必须定期续订,证书映射规则减少了管理开销。当用户证书被续订时,管理员不必更新用户条目。例如,如果映射基于 SubjectIssuer 值,如果新证书的主题和签发者与旧证书相同,则映射仍适用。如果使用完整证书,则管理员必须将新证书上传到用户条目以替换旧证书。

设置证书映射:

  1. 管理员必须将证书映射数据(通常是签发者和使用者)或完整证书加载到用户帐户中。
  2. 管理员必须创建证书映射规则,允许用户成功登录到 IdM

    1. 其帐户包含证书映射数据条目
    2. 哪个证书映射数据条目与证书的信息匹配

    有关组成映射规则的各个组件以及如何获取和使用它们的详情,请参阅 IdM 中的身份映射规则的组件 ,并从证书中获取签发者,以便在匹配的规则 中使用

随后,当最终用户提供证书时,存储在文件系统或 智能卡中时,验证会成功。

53.1.1. 使用 Active Directory 域信任的证书映射规则

本节概述了 IdM 部署与 Active Directory(AD)域的信任关系时可能的不同证书映射用例。

证书映射规则是一种便捷的方式,可为拥有受信任的 AD 证书系统签发的智能卡证书的用户启用对 IdM 资源的访问。根据 AD 配置,可能会出现以下情况:

53.1.2. IdM 中身份映射规则的组件

本节论述了 IdM 中的身份映射规则的组件以及如何配置它们。每个组件都有一个可覆盖的默认值。您可以在 Web UI 或 CLI 中定义这些组件。在 CLI 中,身份映射规则使用 ipa certmaprule-add 命令创建。

映射规则

映射规则组件将证书与一个或多个用户帐户关联(或映射)。规则定义将证书与预期用户帐户关联的 LDAP 搜索过滤器。

不同证书颁发机构(CA)发布的证书可能具有不同的属性,并可在不同的域中使用。因此,IdM 不适用于无条件地应用映射规则,而只适用于适当的证书。使用匹配规则定义适当的证书

请注意,如果您将映射规则选项留空,则证书将在 userCertificate 属性中作为 DER 编码的二进制文件进行搜索。

利用 --maprule 选项,在 CLI 中定义映射规则。

匹配规则

匹配的规则组件选择您要应用映射规则的证书。默认匹配规则与 数字Signature 密钥使用和 客户端Auth 扩展密钥 使用的证书匹配。

使用 --matchrule 选项,在 CLI 中定义匹配的规则。

域列表

域列表指定您希望 IdM 在处理身份映射规则时搜索用户的身份域。如果您未指定 选项,IdM 仅在 IdM 客户端所属的本地域中搜索用户。

利用 --domain 选项,在 CLI 中定义域。

优先级

当多个规则适用于证书时,优先级最高的规则优先。所有其他规则将被忽略。

  • 数字值越低,身份映射规则的优先级越高。例如,具有优先级 1 的规则的优先级高于优先级 2 的规则。
  • 如果规则没有定义优先级值,它具有最低的优先级。

使用 --priority 选项,在 CLI 中定义映射规则优先级。

证书映射规则示例

要使用 CLI 定义证书映射规则,允许对 EXAMPLE.ORG 机构 智能卡 CA 发布的证书进行身份验证,只要该证书上的 Subject 与 IdM 中用户帐户中的 certmapdata 条目匹配:

# ipa certmaprule-add simple_rule --matchrule '<ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG' --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'

53.1.3. 从证书获取签发者,以便在匹配规则中使用

这个步骤描述了如何从证书中获取签发者信息,以便您可以将其复制并粘贴到证书映射规则的匹配规则中。要获得匹配规则所需的签发者格式,请使用 openssl x509 实用程序。

先决条件

  • 您有用户证书,格式为 a .pem 或.crt

流程

  1. 从证书获取用户信息。使用 openssl x509 证书显示和签名程序:

    • 用于防止编码版本的请求输出的 -noout 选项
    • 输出签发者名称的 -issuer 选项
    • 使用 -in 选项指定要从中读取证书的输入文件名
    • 使用 RFC2253 值的 -nameopt 选项,首先显示最具体相对可分辨名称(RDN)的输出

      如果输入文件包含身份管理证书,命令的输出会显示使用机构 信息 定义了发行者:

      # openssl x509 -noout -issuer -in idm_user.crt -nameopt RFC2253
      issuer=CN=Certificate Authority,O=REALM.EXAMPLE.COM

      如果输入文件包含一个 Active Directory 证书,命令的输出会显示使用 域组件 信息定义了发行者:

      # openssl x509 -noout -issuer -in ad_user.crt -nameopt RFC2253
      issuer=CN=AD-WIN2012R2-CA,DC=AD,DC=EXAMPLE,DC=COM
  2. 另外,要根据匹配规则在 CLI 中创建一个新的映射规则,指定证书签发者必须是 ad.example.com 域的提取 AD-WIN2012R2-CA,证书上的主题必须与 IdM 中的用户帐户中的 certmapdata 条目匹配:

    # ipa certmaprule-add simple_rule --matchrule '<ISSUER>CN=AD-WIN2012R2-CA,DC=AD,DC=EXAMPLE,DC=COM' --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'

附加信息

有关匹配规则和映射规则支持的格式,以及优先级和域字段的说明,请查看 sss-certmap(5) man page。