Menu Close

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

9.1. 用于在智能卡中配置身份验证的证书映射规则

证书映射规则是允许用户在 Identity Management(IdM)管理员无法访问某些用户证书时使用证书进行身份验证的方法。不足的访问权限通常是由证书由外部证书颁发机构发布的事实造成的。一个特殊的用例由 IdM 域在信任关系中的 Active Directory(AD)的证书系统发布。

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

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

设置证书映射:

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

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

    有关构成映射规则的单独组件,以及如何获取和使用它们的详细信息,请参阅 IdM 中的身份映射规则组件,以及获取证书中的签发者,以便在匹配规则中使用

之后,当最终用户提供证书时(保存在文件系统智能卡中)身份验证可以成功。

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

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

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

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

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

映射规则

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

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

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

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

匹配规则

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

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

域列表

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

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

优先级

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

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

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

证书映射规则示例

要定义,使用 CLI,一个被称为 simple_rule 的证书映射规则,允许使用 EXAMPLE.ORG 机构的 Smart Card 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})'

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

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

先决条件

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

步骤

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

    • 用于阻止编码版本的请求输出的 -noout 选项
    • 输出签发者名称的 -issuer 选项
    • 用来读取证书的输入文件名的 -in 选项
    • 带有 RFC2253 值的 -nameopt 选项会首先显示使用最具体的相对可分辨名称(RDN)。

      如果输入文件包含 Identity Management 证书,命令的输出将使用 Organisation 信息定义 Issuer:

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

      如果输入文件包含 Active Directory 证书,命令的输出将使用 Domain 组件信息来定义 Issuer:

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

9.1.4. 其他资源

  • 请参阅 sss-certmap(5) 手册页。