3.7.2. 在 Subject Alt Name 中插入 LDAP 目录属性值和其他信息
LDAP 目录或请求者提交的信息可通过使用 Subject Alt Name Extension Default 配置中匹配的变量插入到证书的主题备用名称中。此默认值设定信息的类型(格式),然后设置用于检索信息的匹配模式(变量)。例如:
policyset.userCertSet.8.default.class_id=subjectAltNameExtDefaultImpl policyset.userCertSet.8.default.name=Subject Alt Name Constraint policyset.userCertSet.8.default.params.subjAltNameExtCritical=false policyset.userCertSet.8.default.params.subjAltExtType_0=RFC822Name policyset.userCertSet.8.default.params.subjAltExtPattern_0=$request.requestor_email$ policyset.userCertSet.8.default.params.subjAltExtGNEnable_0=true
这会在 subject alt name 中插入请求者的电子邮件作为第一个 CN 组件。要使用额外的组件,请在数字上递增 Type_、Pattern_ 和 Enable_ 值,如 Type_1。
配置 subject alt 名称也包括在 第 B.1.23 节 “主题名称扩展默认值” 中。
将 LDAP 组件插入到证书的 subject alt 名称中:
- 插入 LDAP 属性值需要启用用户目录身份验证插件 SharedSecret。
- 打开 CA 控制台。
pkiconsole https://server.example.com:8443/ca
- 在左侧导航树中选择 Authentication。
- 在 Authentication Instance 选项卡中,点 Add,再添加 SharedSecret 身份验证插件的实例。
- 输入以下信息:
Authentication InstanceID=SharedToken shrTokAttr=shrTok ldap.ldapconn.host=server.example.com ldap.ldapconn.port=636 ldap.ldapconn.secureConn=true ldap.ldapauth.bindDN=cn=Directory Manager password=password ldap.ldapauth.authtype=BasicAuth ldap.basedn=ou=People,dc=example,dc=org
- 保存新的插件实例。
有关设置 CMC 共享令牌的详情,请参考 第 9.4.2 节 “设置 CMC 共享 Secret”。 - ldapStringAttributes 参数指示身份验证插件从用户的 LDAP 条目中读取
mail
属性的值,并将该值放在证书请求中。当值位于请求时,可以将证书配置集策略设置为插入扩展值的值。 - 要启用 CA 在证书扩展中插入 LDAP 属性值,请编辑配置集的配置文件,并为扩展插入策略 set 参数。例如,要在
caFullCMCSharedTokenCert
配置集中的 Subject Alternative Name 扩展中插入mail
属性值,请更改以下代码:policyset.setID.8.default.params.
subjAltExtPattern_0=$request.auth_token.mail[0]$
有关编辑配置集的详情,请参考 第 3.2.1.3 节 “使用 Raw 格式编辑证书配置文件”。 - 重启 CA。
systemctl restart pki-tomcatd-nuxwdog@instance_name.service
在本例中,通过
caFullCMCSharedTokenCert
配置集注册表单提交的证书会添加 Subject Alternative Name 扩展,并带有 requester 的邮件
LDAP 属性的值。例如:
Identifier: Subject Alternative Name - 2.5.29.17 Critical: no Value: RFC822Name: jsmith@example.com
表 3.1. 用于填充证书的变量
策略设置令牌 | 描述 |
---|---|
$request.auth_token.cn[0]$ | 请求证书的用户的 LDAP 通用名称(cn )属性。 |
$request.auth_token.mail[0]$ | 请求证书的用户的 LDAP 电子邮件(邮件 )属性值。 |
$request.auth_token.tokencertsubject$ | 证书主题名称。 |
$request.auth_token.uid$ | 请求证书的用户的 LDAP 用户 ID(uid )属性。 |
$request.auth_token.userdn$ | 请求证书的用户 DN。 |
$request.auth_token.userid$ | 请求证书的用户的用户 ID 属性的值。 |
$request.uid$ | 请求证书的用户的用户 ID 属性的值。 |
$request.requestor_email$ | 提交请求的人的电子邮件地址。 |
$request.request_name$ | 提交请求的人员。 |
$request.upn$ | Microsoft UPN。它的格式为 (UTF8String)1.3.6.1.4.1.311.20.2.3,$request.upn$。 |
$server.source$ | 指示服务器在主题名称中生成版本 4 个 UUID(随机号)组件。这始终具有格式 (IA5String)1.2.3.4,$server.source$. |
$request.auth_token.user$ | 当请求由 TPS 提交时使用。请求证书的 TPS 子系统可信管理器。 |
$request.subject$ | 当请求由 TPS 提交时使用。TPS 已解析和请求的实体的主题名称 DN。例如: cn=John.Smith.123456789,o=TMS Org |