9.9. 将多个身份映射规则合并到一个规则中

要将多个身份映射规则组合成一个组合规则,请使用 | (或)字符在单个映射规则前前,并使用 () 方括号将它们分隔,例如:

证书映射过滤器示例 1

$ ipa certmaprule-add ad_cert_for_ipa_and_ad_users \ --maprule='(|(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500}))' \ --matchrule='<ISSUER>CN=AD-ROOT-CA,DC=ad,DC=example,DC=com' \ --domain=ad.example.com

在上例中,-- maprule 选项中的过滤器定义包括这些条件:

  • ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500} 是一个过滤器,它将一个智能卡证书中的 subject 和 issuer 连接到一个 IdM 用户账户中的 ipacertmapdata 属性的值,如 Adding a certificate mapping rule in IdM 部分所述
  • altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500} 是一个过滤器,它将一个智能卡证书中的 subject 和 issuer 连接到一个 AD 用户账户中的 altSecurityIdentities 属性的值,如 Adding a certificate mapping rule if the trusted AD domain is configured to map user certificates 所述
  • 添加 --domain=ad.example.com 选项意味着映射到给定证书的用户不仅在本地 idm.example.com 域中搜索,还要在 ad.example.com 域中搜索

--maprule 选项中的过滤器定义接受逻辑运算符 | (或),以便您可以指定多个条件。在这种情况下,规则映射了至少满足其中一个条件的所有用户帐户。

证书映射过滤器示例 2

$ ipa certmaprule-add ipa_cert_for_ad_users \
  --maprule='(|(userCertificate;binary={cert!bin})(ipacertmapdata=X509:<I>{issuer_dn!nss_x500}<S>{subject_dn!nss_x500})(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<S>{subject_dn!ad_x500}))' \
  --matchrule='<ISSUER>CN=Certificate Authority,O=REALM.EXAMPLE.COM' \
  --domain=idm.example.com --domain=ad.example.com

在上例中,-- maprule 选项中的过滤器定义包括这些条件:

--maprule 选项中的过滤器定义接受逻辑运算符 | (或),以便您可以指定多个条件。在这种情况下,规则映射了至少满足其中一个条件的所有用户帐户。