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


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

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

先决条件

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

10.4.1. 在 IdM Web UI 中添加证书映射规则

  1. 以管理员身份登录到 IdM Web UI。
  2. 进入到 Authentication Certificate Identity Mapping Rules Certificate Identity Mapping Rules
  3. Add

    图 10.1. 在 IdM web UI 中添加新证书映射规则

    IdM Web UI 的截图显示 Authentication 选项卡中的"Certificate Identity Mapping Rules"子选项卡。页面右侧的"添加"按钮被突出显示。
  4. 输入规则名称。
  5. 输入映射规则。例如,要让 IdM 搜索提供给它们的任何证书中带有 IssuerSubject 条目,并根据在提供的证书中的这两个条目是否被找到来决定进行验证或不验证。

    (ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})
  6. 输入匹配的规则。例如,只允许由 EXAMPLE.ORG 机构的 智能卡 CA 签发的证书以向 IdM 验证用户:

    <ISSUER>CN=Smart Card CA,O=EXAMPLE.ORG

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

    "添加证书身份映射规则"弹出窗口的截图,包含以下字段填写以下字段:规则名称(必需)-Mapping 规则 - 匹配规则。Priority 字段留空,域名标签旁边还有一个添加按钮。
  7. 点对话框底部的 Add,添加规则并关闭该框。
  8. 系统安全服务守护进程(SSSD)会定期重新读取证书映射规则。要强制立即载入新创建的规则,重启 SSSD:

    # systemctl restart sssd

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

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

  1. 获取管理员凭证:

    # kinit admin
  2. 输入映射规则以及映射规则所基于的匹配规则。例如,要让 IdM 搜索任何提供的证书中的 IssuerSubject 条目,并根据在提供的证书中找到的这两个条目的信息决定是否进行验证,只允许使用 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
  3. 系统安全服务守护进程(SSSD)会定期重新读取证书映射规则。要强制立即载入新创建的规则,重启 SSSD:

    # systemctl restart sssd

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

10.4.3. 在 IdM web UI 中的用户条目中添加证书映射数据

  1. 以管理员身份登录 IdM Web UI。
  2. 进入 Users Active users idm_user
  3. 找到 Certificate mapping data 选项并点 Add
  4. 选择以下选项之一:

    • 如果您有 idm_user 证书:

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

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

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

        显示用户"demouser"的页面的截图,其中列有条目,如作业标题 - 名字 - 姓氏 - 显示名称等。"Account Settings"列位于右侧,包含用户登录 - 密码 - UID - GID 等条目。"Certificates"条目的"添加"按钮会被突出显示。
        • 如果您没有可供使用的 idm_user 证书,但知道证书的 IssuerSubject,请检查 Issuer 和 subject 单选按钮,并在两个框中输入值。

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

        "添加证书映射数据"弹出式窗口带有两个分类按钮选项:"证书映射数据"和"Issuer 和 subject"的截屏,选择了"Issuer 和 subject",并填写了两个字段(Issuer 和 Subject)。
  5. Add

验证

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

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

    # sss_cache -u idm_user
  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
    ----------------------------

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

10.4.4. 在 IdM CLI 中向用户条目添加证书映射数据

  1. 获取管理员凭证:

    # kinit admin
  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
    • 如果您没有 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

验证

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

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

    # sss_cache -u idm_user
  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
    ----------------------------

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.