密钥定位器
密钥定位器(com.ibm.wsspi.wssecurity.config.KeyLocator) 是机制的抽象,它检索密钥以获取数字签名和加密。
要点: V5.x 与 V6.0.x 应用程序之间有一个重要区别。这些信息仅支持与 WebSphere® Application Server V6.0.x 和更高版本配合使用的 V5.x 应用程序。本信息不适用于 V6.0.x 应用程序。
可以使用以下任何基础结构,根据实现从中检索密钥:
- Java™ 密钥库文件
- 数据库
- 轻量级第三方认证 (LTPA) 服务器
密钥定位器使用某些类型的线索搜索密钥。支持以下线索的类型:
- 密钥的字符串标签,它是显式地通过应用程序编程接口 (API) 传递的。每个密钥及其名称(字符串标签)之间的关系在密钥定位器内部进行维护。
- 密钥定位器的执行上下文;不向密钥定位器传递显式信息。密钥定位器根据执行上下文确定合适的密钥。
密钥定位器的当前版本不支持检索验证密钥,这是因为当前 Web Service 安全性实现不支持基于密钥的签名。由于密钥定位器仅支持基于公用密钥的签名,所以用于验证的密钥嵌入在X.509证书中,作为入局消息中的<BinarySecurityToken>元素。
例如,密钥定位器可从上下文获取调用者的标识,并可检索调用者的公用密钥用于响应加密。
使用方案
本节描述密钥定位器的使用方案。
签名:
在 Web Service 安全性配置中指定签名密钥的名称。将此值传递到密钥定位器并返回实际密钥。相应的X.509证书也能返回。
验证
如前所述,签名验证中不使用密钥定位器。
加密:
在 Web Service 安全性配置中指定加密密钥的名称。将此值传递到密钥定位器并返回实际密钥。
解密:
Web Services 安全规范建议使用密钥标识而不使用密钥名。但是,虽然在因特网工程任务组织 (IETF) 请求评论 (RFC) 3280 中定义了用于计算公用密钥的标识的算法,但对于密钥却没有公认的算法。因此,Web Service 安全性的当前实现仅在执行基于公用密钥的加密时使用标识。否则,使用序数密钥名。
当您使用基于公用密钥的加密时,密钥标识的值嵌入在入局加密的消息中。然后,Web Service 安全性实现搜索密钥定位器管理的所有密钥,并使用标识值与消息中的值匹配的密钥解密消息。
当您使用基于密钥的加密时,密钥名的值嵌入在入局加密的消息中。Web Service 安全性实现用与消息中的名称匹配的名称为密钥请求密钥定位器,并使用密钥解密消息。