为 Web 服务消息级安全使用自定义密钥库
目录
密钥库
密钥库是受报告的数据库,或是密钥的存储设施,用于存放企业的加密密钥和证书。对密钥库的访问受密码(在创建密钥库时定义)保护。此外,密钥库中的每个私有密钥可以由自己的密码来保护。
密钥库可以具有不同类型的条目。密钥库的两个最适用的条目类型包括:
- 密钥条目 —— 每个条目存放非常敏感的加密密钥信息,这些信息以受保护格式存储以防止非授权的访问。通常,此类型条目中存储的密钥是秘密密钥,或附带有相应公共密钥的证书“链”的私有密钥。
- 可信任证书条目 —— 每个条目包含属于其他方的单个公共密钥证书。之所以称为“可信任证书”,是因为密钥库所有者信任证书中的公共密钥确实属于证书“主题”(所有者)标识的身份。证书发放者通过签署证书来担保这一点。
Web 服务提供商和 Web 服务客户机上的消息级安全
NetBeans Enterprise Pack Identity 允许开发人员在 Web服务提供者(WSP) 和 Web Service Client (WSC) 上提供消息级(Message Level)安全。消息级允许使用以下两种类型的令牌配置文件,以及其他配置文件:
- WS-I Basic Security Profile(基于 BSP 的令牌配置文件;即 SAML_SenderVouches、SAML_HolderOfKey、X509 和 UserNameToken)。
- 特定于 Liberty ID-WSF 的令牌配置文件;即 LibertySAML、LibertyBearer 和 LibertyX509。
NetBeans Identity 工具允许通过 WSP 和 WSC 安全向导提供的证书设置来签署安全令牌或响应,如 WSP 使用的证书设置向导的以下截屏所示。
此处,默认情况下选择“使用默认密钥库”选项。使用此选项,WSP 将使用与访问管理器绑定在一起的密钥库。有两个密钥库文件与访问管理器服务器绑定在一起:
amclientkeystore.jks,由客户机 SDK 使用,最终由 WSC 和 WSP 的验证提供者(Authentication Provider)使用。
- amserverkeystore.jks,由访问管理器托管的 Liberty 发现服务使用的服务器密钥库文件,用于生成安全令牌并签署/验证请求/响应消息。
密钥库
此处,默认情况下选择“使用默认密钥库”选项。使用此选项,WSP 将使用与访问管理器绑定在一起的密钥库。有两个密钥库文件与访问管理器服务器绑定在一起:
- amclientkeystore.jks,由客户机 SDK使用,最终由 WSC 和 WSP 的验证提供者使用。
- amserverkeystore.jks,由访问管理器托管的 Liberty 发现服务使用的服务器密钥库文件,用于生成安全令牌并签署/验证请求/响应消息。
密钥库
密钥库在 Enterprise Pack 安装后可用。密钥库预填充密钥别名,访问管理器服务器和客户机 SDK 使用这些别名来执行以下操作:
- 签署安全令牌(默认为 SAML、X509 和 Liberty)
- 签署来自 WSP 的响应并验证 WSC 的响应
- 使用 WSC,对可信任授权中存储的 WSP 服务提供进行 Liberty Discovery 服务查询。
- 通过 Liberty Discovery 服务签署 Liberty 安全配置文件
默认密钥库包含以下预填充的别名:
- amclient。由 WSC/WSP 在必须签署出站 SOAP 消息时使用
- amserver。由 Discovery Service aka Trusted Authority 用于创建安全令牌。WSP 通过使用其公共密钥来验证此密钥。
IDE 通过使用访问管理器客户机 SDK 与访问管理器服务器通信。
访问管理器客户机 SDK由属性初始化,以通过名为 AMConfig .properties 的文件与服务器通话。此客户机 SDK 属性文件默认安装在 /addons/amserver/AMConfig.properties 中。
与密钥库设置相关的 AMConfig.properties 属性
与密钥库设置相关并由客户机SDK/验证提供者运行时使用的 AMConfig.properties 文件中的相关属性包括:
- com.sun.identity.liberty.ws.wsc.certalias=amclient
- com.sun.identity.liberty.ws.trustedca.certaliases=amserver:localhost
com.sun.identity.liberty.ws.wsc.certalias 属性由需要使用 Liberty X509Token 进行签署的出站 SOAP 消息的 Web 服务客户机/Web 服务提供商使用。例如,此属性由 web 服务客户机在查询服务提供的发现服务时使用,同时,此客户机还在尝试使用 X509 令牌配置文件与 WSP 通话时使用此属性。
WSP 使用 com.sun.identity.liberty.ws.trustedca.certaliases 属性来标识其可信任授权和公共密钥。例如,当我们将此属性的值设置为 amserver:localhost 时,它将信任公共密钥为 amserver 的 localhost 的发现服务。
使用密钥库设置
在 Enterprise Pack 中,可以使用密钥库设置进行以下操作:
- 在 SOAP 报头中发送令牌配置文件时对其进行签署。
令牌文件由其规范定义,需要在 SOAP 中发送时进行签署。例如,SAML 规范规定在 SOAP 报头中发送的 SAML 谓语应始终进行签署。
- 签署从 Web服务提供者发送到 Web 服务客户机的响应。
Enterprise Pack 工具还允许用户签署从 WSP 发送到 WSC 的响应。此功能签署完整 SOAP 消息(Header 和 Body),并允许 WSC 在接受来自 WSP 的响应之前验证签名。
为 WSI-BSP 令牌配置文件和 Liberty 令牌配置文件使用自定义密钥库
要使用带有自定义密钥库的 WSI-BSP 令牌配置文件,请执行以下操作:
- 确保具有现有密钥库并且所需密钥别名已填充。
- 在“运行时”窗口中,打开配置文件。参见下图。
- 在“认证设置”区域中,执行以下步骤。注意,输入的任何值都不能为空。
- 清除默认选中的“使用默认密钥库”复选框。
- 在复选框后面的文本字段中,键入以下内容:
- 获得密钥库文件的完整路径。惟一支持的密钥库格式是 JKS。
- 密钥库的密码。
- WSP 签署响应或签署安全令牌时要使用的密钥别名。
- 密钥别名的密码。输入有效的值,即使此值与密钥库密码相同。
- 单击“确定”提交更改。
- 打开 WSC 安全面板。执行上述相同步骤,添加 WSC 要使用的自定义密钥库详细信息。
- 部署客户机并运行应用程序。
- WSC 和 WSP 将使用用户指定的自定义密钥库。
为 Liberty 令牌配置文件使用自定义密钥库
要为 Liberty 令牌配置文件使用自定义密钥库,请执行以下操作:
应具有已填充所需密钥别名的现有密钥库。此密钥库应由应用服务器运行时在本地访问(安装应用服务器的物理位置)。
- 在“运行时”窗口中打开所需的 Liberty Token Profile。
- 使用上一节概述的自定义密钥库的相同设置。
- 打开 WSC 安全面板。执行上述相同步骤,添加 WSC 要使用的自定义密钥库详细信息。
- 要为 Liberty Token Profile 使用自定义密钥库,必须执行 IDE 的联机帮助主题“Using a Custom Keystore for the Liberty Token Profile”中描述的其他配置。
- 运行 Liberty 启用的 WSC。
它现在使用开发人员指定的自定义密钥库。
用户指定的自定义密钥库对应用服务器实例有效。此实例上的所有已部署应用程序应使用相同的密钥库设置。
更多信息
有关密钥工具使用的说明,请参阅以下文档。
回到顶部