Identity Manager 允许将 XMLDSIG 格式的签名批准(包括 RFC 3161 兼容的数字时间戳)添加到 Identity Manager 批准进程中。在将 Identity Manager 配置为使用 XMLDSIG 签名批准时,不会向批准者显示任何更改,除非他们在审计日志中查看该批准。仅更改了审计日志记录中存储的签名批准的格式。
与 Identity Manager 中以前的签名批准一样,将在客户端计算机上启动一个 applet,并向批准者显示要签名的批准信息。然后,批准者选择用于对批准进行签名的密钥库和密钥。
在批准者对批准进行签名后,将创建一个包含该批准数据的 XMLDSIG 文档。此文档将返回到服务器,该服务器会验证 XMLDSIG 签名文档。如果验证成功,并且配置了 RFC 3161 数字时间戳,则还会为此文档生成数字时间戳。将检查从时间戳服务中心 (Timestamp Authority, TSA) 检索的时间戳是否有错误,并验证其证书。最后,如果验证成功,Identity Manager 将生成一个审计日志记录,它在 XML 二进制大对象列中包含 XMLDSIG 格式的签名批准对象。
XMLDSIG 格式的批准对象的格式如下所示:
<XMLSignedData signedContent="...base64 transaction text ..."> <XMLSignature> <TSATimestamp> ...The base64 encoded PKCS7 timestamp token returned by the TSA... </TSATimestamp <Signature> <SignedInfo>...XMLDSIG stuff...</SignedInfo> <SignatureValue>...base64 signature value</SignatureValue> <KeyInfo>...cert info for signer</KeyInfo> </Signature> </XMLSignature> </XMLSignedData>
其中:
base64 批准数据包含在 applet 中向批准者显示的实际批准数据文本(以 base64 格式编码)。
<TSATimestamp> 元素包含来自时间戳服务中心 (Timestamp Authority, TSA) 的 base64 编码的 PKCS7 时间戳响应。
整个 <Signature> 由 XMLDSIG 签名数据组成。
该 XMLDSIG 文件存储在审计日志批准记录的 XML 列中。
使用 XMLDSIG 签名批准的安装和设置要求与 为签名的批准启用服务器端配置中介绍的要求相同,但还增加了一个步骤。除了对 ts2.jar 文件进行签名以外,还必须对 xmlsec-1.4.2.jar 文件进行签名。
可以使用系统配置属性执行以下操作:
选择 SignedData 格式或 XMLSignedData 格式。请注意,每次只能配置一种格式,但管理员可以根据需要更改此设置。
包括从配置的 RFC 3161 时间戳服务中心 (Timestamp Authority, TSA) 检索的数字时间戳。
指定从中提取该时间戳的 URL(只能采用 HTTP 格式)。
要编辑这些属性,请使用 Identity Manager 调试页编辑系统配置对象。这些属性以及其他签名批准属性均位于 security.nonrepudiation 下面。
XMLDSIG 属性包括:
security.nonrepudiation.useXmlDigitalSignatures 是一个布尔值,用于启用 XMLDSIG 签名。
security.nonrepudiation.timestampXmlDigitalSignatures 是一个布尔值,其中包含 XMLDSIG 签名中的 RFC 3161 数字时间戳。
security.nonrepudiation.timestampServerURL 是一个字符串值,其中的 URL 指向从中提取时间戳的基于 HTTP 的 TSA。
您必须先将现有的 useSignedApprovals 属性设置为 true,才能使任何以前的属性生效。
Identity Manager 不支持对一个批准进行多次签名,也不支持为更一般性的置备请求提供签名批准。