在将用户添加到 Identity Manager 系统后,指定为新帐户批准者的管理员必须对帐户创建进行验证。
Identity Manager 支持三种类别的批准:
组织。需要批准要添加到组织的用户帐户。
角色。需要批准要分配给角色的用户帐户。
资源。需要批准要授权访问资源的用户帐户。
此外,如果启用了更改批准,并且对角色进行了更改,则会将更改批准工作项目发送至指定的角色所有者。
Identity Manager 支持通过角色定义进行更改批准。如果管理员更改了角色定义,则需要指定的角色所有者进行更改批准。角色所有者必须批准该工作项目才能进行更改。
您可以配置 Identity Manager 以获得数字签名的批准。有关说明,请参见配置数字签名的批准和操作。
不熟悉 Identity Manager 的管理员有时会将批准概念与听起来类似的证明概念混淆。虽然名称听起来类似,但批准和证明出现在不同的上下文中。
批准关注的是验证新用户帐户。在将用户添加到 Identity Manager 后,可能需要进行一次或多次批准以确保新帐户获得了授权。
证明关注的是验证现有用户是否在相应资源上仅具有相应权限。在周期性访问查看的过程中,可能会要求 Identity Manager 用户(证明者)证明其他用户的帐户详细信息(即,为该用户分配的资源)是否有效且正确无误。此过程称为证明。
为组织、角色和资源批准设置帐户批准者是可选的,但建议进行此类设置。对于在其中设置批准者的每个类别,帐户创建至少都需要一个批准。如果一个批准者拒绝批准请求,则不会创建帐户。
可以将多个批准者分配给各个类别。因为一个类别内只需要一个批准,所以可设置多个批准者,以帮助确保不会延迟或停止工作流。如果一个批准者不可用,则其他批准者可用于处理请求。批准仅适用于帐户创建。默认情况下,帐户的更新和删除不需要批准。不过,您可以自定义此过程以要求进行批准。
可以通过使用 Identity Manager IDE 自定义工作流,以更改批准、捕获帐户删除以及捕获更新的流程。
有关 Identity Manager IDE 的信息,请访问 https://identitymanager.dev.java.net。有关工作流的信息以及更改批准工作流的说明示例,请参见《Sun Identity Manager Deployment Reference》中的第 1 章 “Workflow”。
Identity Manager 批准者可以批准或拒绝批准请求。
管理员可以在 Identity Manager 界面的“工作项目”区域中查看和管理暂挂批准。在“工作项目”页中,单击我的工作项目以查看暂挂批准。单击批准选项卡以管理批准。
要使用数字签名批准工作项目,您必须先按配置数字签名的批准和操作中所述设置数字签名。
在 Identity Manager 管理员界面中,选择工作项目。
单击批准选项卡。
从列表中选择一个或多个批准。
输入批准的注释,然后单击 Approve。
Identity Manager 会给出提示,并询问您是否信任该 applet。
单击 Always。
Identity Manager 将显示一个含有日期的批准摘要。
输入密钥库位置,或者单击浏览以找到密钥库位置。(在配置签名的批准期间设置此位置,如使用 PKCS12 为签名的批准启用服务器端配置过程中的步骤 10m 所述。)
输入密钥库密码(在配置签名的批准期间设置此密码,如使用 PKCS12 为签名的批准启用服务器端配置过程中的步骤 10l 所述)。
单击签名以批准请求。
对某个批准签名之后,只需输入密钥库密码,然后单击 Sign,即可执行后续批准操作。(Identity Manager 将通过先前的批准记忆密钥库的位置。)
可以使用以下信息和过程来设置数字签名。可以对以下项目进行数字签名:
批准(包括更改批准)
访问查看操作
遵从性违规的修正
本节讨论的主题说明了将证书和 CRL 添加到 Identity Manager 以获得签名批准所需的服务器端和客户端配置。
打开系统配置对象以进行编辑并设置 security.nonrepudiation.signedApprovals=true。
有关编辑系统配置对象的说明,请参见编辑 Identity Manager 配置对象。
如果使用的是 PKCS11,您还必须设置 security.nonrepudiation.defaultKeystoreType=PKCS11。
如果使用的是自定义 PKCS11 密钥提供程序,您还必须设置 security.nonrepudiation.defaultPKCS11KeyProvider=您的提供程序名称。
有关何时需要编写自定义提供程序的详细信息,请参阅 REF(Resource Extension Facility,资源扩充工具)工具包中的以下项目:
com.sun.idm.ui.web.applet.transactionsigner.DefaultPKCS11KeyProvider (Javadoc) REF/transactionsigner/SamplePKCS11KeyProvider |
REF(Resource Extension Facility,资源扩充工具)工具包是在产品 CD 上的 /REF 目录中提供的,或者是随安装映像提供的。
将证书颁发机构 (Certificate Authority, CA) 的证书添加为信任证书。为此,必须首先获得证书的副本。
例如,如果要使用 Microsoft CA,请按类似以下的步骤操作:
将证书作为信任证书添加到 Identity Manager 中:
添加 CA 的证书撤销列表 (Certificate Revocation List, CRL):
单击测试连接验证 URL。
单击保存。
使用 jarsigner 对 applets/ts2.jar 签名。
有关详细信息,请访问 http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/jarsigner.html。Identity Manager 附带的 ts2.jar 文件使用自签名证书来签名,不应将其用于生产系统。在生产中,应使用由信任 CA 颁发的代码签名证书重新对此文件签名。
以下配置信息适用于使用 PKCS12 获得的签名批准。先获取证书和专用密钥,然后将其导出到 PKCS#12 密钥库中。例如,如果要使用 Microsoft CA,请按类似以下的步骤操作:
Identity Manager 现在至少需要使用 JRE 1.5。
使用 Internet Explorer 浏览到 http://IPAddress /certsrv,然后通过管理权限登录。
选择“请求证书”,然后单击“下一步”。
选择“高级请求”,然后单击“下一步”。
单击“下一步”。
选择 "User for Certificate Template"。
选择以下选项:
单击“提交”,然后单击“确定”。
单击“安装此证书”。
选择“运行”-> "mmc" 以启动 mmc。
添加证书插件:
如果将 PKCS11 用于签名的批准
请参阅 REF 工具包中的以下资源以了解配置信息:
com.sun.idm.ui.web.applet.transactionsigner.DefaultPKCS11KeyProvider (Javadoc) REF/transactionsigner/SamplePKCS11KeyProvider |
REF(Resource Extension Facility,资源扩充工具)工具包是在产品 CD 上的 /REF 目录中提供的,或者是随安装映像提供的。
本节介绍了用于查看 Identity Manager 审计日志报告中的事务签名的过程。
在 Identity Manager 管理员界面中,选择报告。
在“运行报告”页中,从新建选项列表中选择审计日志报告。
在报告标题字段中输入标题(如“批准”)。
在组织选择区域中,选择所有组织。
选择操作选项,然后选择批准。
单击 Save 保存报告并返回至 Run Reports 页。
单击 Run 运行批准报告。
单击详细信息链接查看事务签名信息。
事务签名信息可以包含以下内容:
颁发者
主题
证书序列号
已签名的消息
签名
签名算法
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 不支持对一个批准进行多次签名,也不支持为更一般性的置备请求提供签名批准。