6.6. 外部注册
外部注册从经过身份验证的用户 LDAP 记录获取令牌类型(TPS 配置集)。它还允许在同一用户记录中指定证书/密钥恢复信息。
外部注册 TPS 配置文件与前面讨论的内部注册配置集类似。它允许您为客户端和服务器端密钥生成指定新证书注册。与内部注册不同,它允许您选择特定的证书(及其匹配密钥)来检索并加载到令牌中。
在内部和外部注册间切换注册类型意味着,您必须先格式化所有之前注册的令牌,然后才能继续使用它们。
6.6.1. 启用外部注册 复制链接链接已复制到粘贴板!
外部注册只能为整个 TPS 实例全局启用。以下示例显示了与外部注册相关的一组全局配置参数:
6.6.2. 自定义用户 LDAP 记录属性名称 复制链接链接已复制到粘贴板!
以下示例中显示了与外部注册相关的身份验证参数(其默认值):
auths.instance.ldap1.externalReg.certs.recoverAttributeName=certsToAdd auths.instance.ldap1.externalReg.cuidAttributeName=tokenCUID auths.instance.ldap1.externalReg.tokenTypeAttributeName=tokenType
auths.instance.ldap1.externalReg.certs.recoverAttributeName=certsToAdd
auths.instance.ldap1.externalReg.cuidAttributeName=tokenCUID
auths.instance.ldap1.externalReg.tokenTypeAttributeName=tokenType
LDAP 记录属性名称可在此处自定义。确保用户的 LDAP 记录中的实际属性与此配置匹配。
6.6.3. 配置 certsToAdd 属性 复制链接链接已复制到粘贴板!
certsToAdd
属性采用以下形式的多个值:
<cert serial # in decimal>,<CA connector ID>,<key ID>,<kra connector ID>
<cert serial # in decimal>,<CA connector ID>,<key ID>,<kra connector ID>
例如:
59,ca1,0,kra1
59,ca1,0,kra1
默认情况下,密钥恢复会根据证书搜索密钥,这会导致 < key ID> 值无关。但是,TPS 可以选择性地配置为使用此属性搜索键,因此通常更简单地将值设为 0。该值无效,这可避免检索不匹配的键。
不建议使用密钥 ID 进行恢复,因为在这种情况下,KRA 无法验证证书是否与密钥匹配。
当只使用证书和 CA 信息指定 certsToAdd
属性时,TPS 假设问题中的证书已在令牌中,并且应保留它。这个概念被称为密钥 保留。
以下示例显示了用户 LDAP 记录中的相关属性:
tokenType: externalRegAddToToken certstoadd: 59,ca1,0,kra1 certstoadd: 134,ca1,0,kra1 Certstoadd: 24,ca1
tokenType: externalRegAddToToken
certstoadd: 59,ca1,0,kra1
certstoadd: 134,ca1,0,kra1
Certstoadd: 24,ca1
6.6.4. 令牌到用户匹配的强制 复制链接链接已复制到粘贴板!
另外,您可以设置系统,以便用于注册的令牌必须与用户记录中的令牌记录卡-唯一的 ID (CUID)属性匹配。如果记录中没有此属性(tokencuid
),则不会强制匹配 CUID。
Tokencuid: a10192030405028001c0
Tokencuid: a10192030405028001c0
关于外部注册的另一个属性是每个令牌上的令牌策略会被绕过。
对于外部注册中要"恢复"的证书和密钥,在用户 LDAP 记录中指定 CA 和 KRA 的连接器信息。与要"恢复"的证书/密钥相关的 TPS 配置文件中指定的任何 CA 和/或 KRA 连接器信息都将被忽略。
certstoadd: 59,ca1,0,kra1
certstoadd: 59,ca1,0,kra1
6.6.5. 委派支持 复制链接链接已复制到粘贴板!
在验证(登录)、数据加密和解密或签名(例如,公司有一个或多个委托)或签名(限制)方面,委派支持非常有用。
例如,每个委托都有自己的令牌,它们用于代表领导操作。此令牌包含以下证书和密钥的组合(由 TPS 配置文件确定):
- 身份验证证书/密钥: CN 包含委托的名称和唯一 ID。主题备用名称(SAN)扩展包含领导名称(UPN)。
- 加密证书:执行的证书的确切副本。
- 签名证书 :CN 包含委派的名称和唯一 ID。SAN 包含参与的 RFC822Name。
使用以下参数启用委派支持:
externalReg.delegation.enable=true
externalReg.delegation.enable=true
要临时解决这个问题,请手动将 /var/lib/pki/ instance_name/tps/conf/CS.cfg
文件中的 op.enroll.delegateISEtoken.keyGen.encryption.ca.profileId
参数设置为 caTokenUserDelegateAuthKeyEnrollment
:
op.enroll.delegateISEtoken.keyGen.encryption.ca.profileId=caTokenUserDelegateAuthKeyEnrollment
op.enroll.delegateISEtoken.keyGen.encryption.ca.profileId=caTokenUserDelegateAuthKeyEnrollment
6.6.6. SAN 和 DN 模式 复制链接链接已复制到粘贴板!
身份验证实例配置中的 auths.instance.<authID > .ldapStringAttributes
指定在身份验证过程中检索哪些属性。例如:
auths.instance.ldap1.ldapStringAttributes=mail,cn,uid,edipi,pcc,firstname,lastname,exec-edipi,exec-pcc,exec-mail,certsToAdd,tokenCUID,tokenType
auths.instance.ldap1.ldapStringAttributes=mail,cn,uid,edipi,pcc,firstname,lastname,exec-edipi,exec-pcc,exec-mail,certsToAdd,tokenCUID,tokenType
从用户的 LDAP 记录检索后,可以引用这些属性的值,并用来形成证书的 Subject Alternative Name (SAN)或可辨识名称(DN),格式为 $auth. <attribute name> $
。例如:
op.enroll.delegateIEtoken.keyGen.authentication.SANpattern=$auth.exec-edipi$.$auth.exec-pcc$@EXAMPLE.com op.enroll.delegateIEtoken.keyGen.authentication.dnpattern=cn=$auth.firstname$.$auth.lastname$.$auth.edipi$,e=$auth.mail$,o=TMS Org
op.enroll.delegateIEtoken.keyGen.authentication.SANpattern=$auth.exec-edipi$.$auth.exec-pcc$@EXAMPLE.com
op.enroll.delegateIEtoken.keyGen.authentication.dnpattern=cn=$auth.firstname$.$auth.lastname$.$auth.edipi$,e=$auth.mail$,o=TMS Org
当在 SAN 和 DN 的 TPS 配置文件中使用模式时,务必要确保正确设置 TPS 配置文件中指定的 CA 注册配置文件。例如:
- 在 TPS 上,在配置集 delegateIEtoken 中
op.enroll.delegateIEtoken.keyGen.authentication.ca.profileId=caTokenUserDelegateAuthKeyEnrollment
op.enroll.delegateIEtoken.keyGen.authentication.ca.profileId=caTokenUserDelegateAuthKeyEnrollment
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 CA 上,在注册配置集 caTokenUserDelegateAuthKeyEnrollment 中
subjectDNInputImpl
插件必须指定为其中一个输入,以便通过上面的 TPS 配置集指定 DN:input.i2.class_id=subjectDNInputImpl input.i2.name=subjectDNInputImpl
input.i2.class_id=subjectDNInputImpl input.i2.name=subjectDNInputImpl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同样,要允许上述 TPS 配置集指定 SAN,必须指定
subjectAltNameExtInputImpl
插件:input.i3.class_id=subjectAltNameExtInputImpl input.i3.name=subjectAltNameExtInputImpl
input.i3.class_id=subjectAltNameExtInputImpl input.i3.name=subjectAltNameExtInputImpl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 还必须指定
subjAltExtpattern
:policyset.set1.p6.default.params.subjAltExtPattern_0=(UTF8String)1.3.6.1.4.1.311.20.2.3,$request.req_san_pattern_0$
policyset.set1.p6.default.params.subjAltExtPattern_0=(UTF8String)1.3.6.1.4.1.311.20.2.3,$request.req_san_pattern_0$
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,OID
1.3.6.1.4.1.311.20.2.3
是 User Principal Name (UPN)的 OID,request.req_san_pattern_0
是delegateIEtoken
SAN 模式中指定的第一个 SAN 模式。
您可以同时指定多个 SAN。在 TPS 端,在 SANpattern
中指定多个 SAN,用逗号(",")分隔。在 CA 端,需要以以下格式定义对应的 subjAltExtPattern
数量:
policyset.<policy set id>.<policy id>.default.params.subjAltExtPattern_<ordered number>=
policyset.<policy set id>.<policy id>.default.params.subjAltExtPattern_<ordered number>=
在上例中,< ;ordered number& gt; 以 0 开头,并为 TPS 端指定的每个 SAN 模式增加一个:
policyset.set1.p6.default.params.subjAltExtPattern_0= policyset.set1.p6.default.params.subjAltExtPattern_1= ...
policyset.set1.p6.default.params.subjAltExtPattern_0=
policyset.set1.p6.default.params.subjAltExtPattern_1=
...
以下是一个完整的示例:
例 6.1. SANpattern 和 DNpattern 配置
LDAP 记录包含以下信息:
TPS 外部注册配置集 delegateIEtoken
包含:
SANpattern
:op.enroll.delegateISEtoken.keyGen.authentication.SANpattern=$auth.exec-edipi$.$auth.exec-pcc$@EXAMPLE.com
op.enroll.delegateISEtoken.keyGen.authentication.SANpattern=$auth.exec-edipi$.$auth.exec-pcc$@EXAMPLE.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DNPattern
:op.enroll.delegateISEtoken.keyGen.authentication.dnpattern=cn=$auth.firstname$.$auth.lastname$.$auth.edipi$,e=$auth.mail$,o=TMS Org
op.enroll.delegateISEtoken.keyGen.authentication.dnpattern=cn=$auth.firstname$.$auth.lastname$.$auth.edipi$,e=$auth.mail$,o=TMS Org
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
CA caTokenUserDelegateAuthKeyEnrollment
contains:
然后,生成的证书包含:
Subject: CN=user1a..123456789,E=user1a@example.org,O=TMS Org Identifier: Subject Alternative Name - 2.5.29.17 Critical: no Value: OtherName: (UTF8String)1.3.6.1.4.1.311.20.2.3,999999999.BB@EXAMPLE.com
Subject: CN=user1a..123456789,E=user1a@example.org,O=TMS Org
Identifier: Subject Alternative Name - 2.5.29.17
Critical: no
Value:
OtherName: (UTF8String)1.3.6.1.4.1.311.20.2.3,999999999.BB@EXAMPLE.com