69.4. 为存储在 IdM 中的用户配置证书映射


如果用户的证书身份验证被配置为存储在 IdM 中,要在 IdM 中启用证书映射,系统管理员必须完成以下任务:

  • 设置证书映射规则,以便具有与映射规则及其证书映射数据条目中指定的条件匹配的证书的 IdM 用户可以向 IdM 进行身份验证。
  • 将证书映射数据输入到 IdM 用户条目中,以便用户可以使用多个证书进行身份验证,只要它们都包含证书映射数据条目中指定的值。

先决条件

  • 用户在 IdM 中有一个帐户。
  • 管理员拥有要添加到用户条目的整个证书或证书映射数据。

69.4.1. 在 IdM Web UI 中添加一个证书映射规则

  1. 以管理员身份登录 IdM Web UI。
  2. 导航到 Authentication Certificate Identity Mapping Rules Certificate Identity Mapping Rules
  3. 单击 Add

    图 69.1. 在 IdM Web UI 中添加一个新的证书映射规则

  4. 输入规则名称。
  5. 输入映射规则。例如,要让 IdM 搜索提供给它们的任何证书中的 IssuerSubject 条目,并根据所显示证书的两个条目中提供的信息做出验证决定:

    (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
    Copy to Clipboard Toggle word wrap
  6. 输入匹配的规则。例如,只允许 EXAMPLE.ORG 机构 智能卡 CA 发布的证书来验证用户到 IdM:

    <ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG
    Copy to Clipboard Toggle word wrap

    图 69.2. 在 IdM Web UI 中输入证书映射规则的详情

  7. 单击对话框底部的 Add,以添加该规则并关闭该框。
  8. 系统安全服务守护进程(SSSD)定期重新读取证书映射规则。要强制立即载入新创建的规则,重启 SSSD:

    # systemctl restart sssd
    Copy to Clipboard Toggle word wrap

现在,您设置了证书映射规则,可将在智能卡证书中找到的映射规则中指定的数据类型与 IdM 用户条目中的证书映射数据进行比较。找到匹配项后,它将对匹配的用户进行身份验证。

69.4.2. 在 IdM CLI 中添加证书映射规则

  1. 获得管理员凭证:

    # kinit admin
    Copy to Clipboard Toggle word wrap
  2. 输入映射规则以及映射规则所基于的匹配规则。例如,要让 IdM 搜索所呈现的任何证书中的 发行者和 Subject 条目,并基于所显示证书的两个条目中找到的信息进行身份验证,仅识别由 EXAMPLE.ORG 机构的 智能卡 CA 发布的证书:

    # ipa certmaprule-add rule_name --matchrule '<ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG' --maprule '(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})'
    -------------------------------------------------------
    Added Certificate Identity Mapping Rule "rule_name"
    -------------------------------------------------------
      Rule name: rule_name
      Mapping rule: (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
      Matching rule: <ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG
      Enabled: TRUE
    Copy to Clipboard Toggle word wrap
  3. 系统安全服务守护进程(SSSD)定期重新读取证书映射规则。要强制立即载入新创建的规则,重启 SSSD:

    # systemctl restart sssd
    Copy to Clipboard Toggle word wrap

现在,您设置了证书映射规则,可将在智能卡证书中找到的映射规则中指定的数据类型与 IdM 用户条目中的证书映射数据进行比较。找到匹配项后,它将对匹配的用户进行身份验证。

  1. 以管理员身份登录 IdM Web UI。
  2. 导航到 Users Active users idm_user
  3. 查找 证书映射数据 选项并单击 Add
  4. 选择以下选项之一:

    • 如果您有 idm_user 的证书:

      1. 在命令行中,使用 cat 实用程序或文本编辑器显示证书:

        [root@server ~]# cat idm_user_certificate.pem
        -----BEGIN CERTIFICATE-----
        MIIFFTCCA/2gAwIBAgIBEjANBgkqhkiG9w0BAQsFADA6MRgwFgYDVQQKDA9JRE0u
        RVhBTVBMRS5DT00xHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x
        ODA5MDIxODE1MzlaFw0yMDA5MDIxODE1MzlaMCwxGDAWBgNVBAoMD0lETS5FWEFN
        [...output truncated...]
        Copy to Clipboard Toggle word wrap
      2. 复制证书。
      3. 在 IdM Web UI 中,单击 Certificate 旁边的 Add,并将证书粘贴到打开的窗口中。

        图 69.3. 添加用户证书映射数据:证书

        • 如果您没有 idm_user 证书,但知道证书的 IssuerSubject,请检查 Issuer and subject 单选按钮,并在两个框中分别输入值。

        图 69.4. 添加用户证书映射数据:签发者和主题

  5. Add

验证

如果您可以访问 .pem 格式的整个证书,请验证是否用户和证书已链接:

  1. 使用 sss_cache 程序在 SSSD 缓存中使 idm_user 记录无效,并强制重新载入 idm_user 信息:

    # sss_cache -u idm_user
    Copy to Clipboard Toggle word wrap
  2. 使用包含 IdM 用户证书的文件名称运行 ipa certmap-match 命令:

    # ipa certmap-match idm_user_cert.pem
    --------------
    1 user matched
    --------------
     Domain: IDM.EXAMPLE.COM
     User logins: idm_user
    ----------------------------
    Number of entries returned 1
    ----------------------------
    Copy to Clipboard Toggle word wrap

    输出确认您现在已将证书映射数据添加到 idm_user,并且存在对应的映射规则。这意味着,您可以使用与定义的证书映射数据匹配的任何证书,以 idm_user 进行身份验证。

  1. 获取管理员凭证:

    # kinit admin
    Copy to Clipboard Toggle word wrap
  2. 选择以下选项之一:

    • 如果您有 idm_user 的证书,请使用 ipa user-add-cert 命令将证书添加到用户帐户中:
    # CERT=$(openssl x509 -in idm_user_cert.pem -outform der|base64 -w0)
    # ipa user-add-certmapdata idm_user --certificate $CERT
    Copy to Clipboard Toggle word wrap
    • 如果您没有 idm_user 的证书,但知道用户证书的 IssuerSubject

      # ipa user-add-certmapdata idm_user --subject "O=EXAMPLE.ORG,CN=test" --issuer "CN=Smart Card CA,O=EXAMPLE.ORG"
      --------------------------------------------
      Added certificate mappings to user "idm_user"
      --------------------------------------------
        User login: idm_user
        Certificate mapping data: X509:<I>O=EXAMPLE.ORG,CN=Smart Card CA<S>CN=test,O=EXAMPLE.ORG
      Copy to Clipboard Toggle word wrap

验证

如果您可以访问 .pem 格式的整个证书,请验证是否用户和证书已链接:

  1. 使用 sss_cache 程序在 SSSD 缓存中使 idm_user 记录无效,并强制重新载入 idm_user 信息:

    # sss_cache -u idm_user
    Copy to Clipboard Toggle word wrap
  2. 使用包含 IdM 用户证书的文件名称运行 ipa certmap-match 命令:

    # ipa certmap-match idm_user_cert.pem
    --------------
    1 user matched
    --------------
     Domain: IDM.EXAMPLE.COM
     User logins: idm_user
    ----------------------------
    Number of entries returned 1
    ----------------------------
    Copy to Clipboard Toggle word wrap

    输出确认您现在已将证书映射数据添加到 idm_user,并且存在对应的映射规则。这意味着,您可以使用与定义的证书映射数据匹配的任何证书,以 idm_user 进行身份验证。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat