第 3 章 用于在智能卡上配置验证的证书映射规则

当身份管理(IdM)管理员无法访问某些用户的证书时,证书映射规则是方便的,允许用户使用证书进行身份验证。这种缺少访问权限通常是由于证书是由外部证书颁发机构发布的。一个特殊的用例由 IdM 域相互信任关系的 Active Directory(AD)证书系统发布的证书系统来表示。

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

另外,因为证书必须定期续订,证书映射规则会降低管理开销。当用户的证书更新时,管理员不必更新用户条目。例如:如果映射基于 SubjectIssuer 值,且新证书的主体和签发者与旧证书有相同的主题和签发者,则映射仍然被应用。如果使用完整证书,则管理员必须将新证书上传到用户条目以替换旧证书。

设置证书映射:

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

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

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

之后,当最终用户显示证书并保存在 文件系统智能卡 中时,验证将成功。

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

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

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

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

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

映射规则

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

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

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

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

匹配规则

匹配的规则组件选择您要应用映射规则的证书。默认匹配规则与证书与 digitalSignature key 使用量和 clientAuth extended key 使用量匹配。

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

域列表

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

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

优先级

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

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

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

证书映射规则示例

要使用 CLI 定义名为 simple_rule 的证书映射规则,该规则允许对 Smart Card CA En 的 EXAMPLE.ORG 发布的证书进行身份验证,只要该证书中的 Subject 上的 certmapdata 与 IdM 中用户帐户中的 条目匹配:

# 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})'

3.3. 从匹配规则中使用的证书获取签发者

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

先决条件

  • 您有 .pem.crt 格式的用户证书

流程

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

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

      如果输入文件包含 Identity Management 证书,命令的输出显示签发者使用 Organisation 信息定义:

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

      如果输入文件包含 Active Directory 证书,命令输出显示签发者使用 Domain Component 信息定义:

      # 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。


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。