FeaturesPluginsDocs & SupportCommunityPartners

为 Web 服务消息级安全使用自定义密钥库

目录

此页面上的内容适用于 NetBeans 6.0 IDE

密钥库

密钥库是受报告的数据库,或是密钥的存储设施,用于存放企业的加密密钥和证书。对密钥库的访问受密码(在创建密钥库时定义)保护。此外,密钥库中的每个私有密钥可以由自己的密码来保护。
密钥库可以具有不同类型的条目。密钥库的两个最适用的条目类型包括:

  • 密钥条目 —— 每个条目存放非常敏感的加密密钥信息,这些信息以受保护格式存储以防止非授权的访问。通常,此类型条目中存储的密钥是秘密密钥,或附带有相应公共密钥的证书“链”的私有密钥。
  • 可信任证书条目 —— 每个条目包含属于其他方的单个公共密钥证书。之所以称为“可信任证书”,是因为密钥库所有者信任证书中的公共密钥确实属于证书“主题”(所有者)标识的身份。证书发放者通过签署证书来担保这一点。

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 使用的证书设置向导的以下截屏所示。

Edit Saml Proile 1

此处,默认情况下选择“使用默认密钥库”选项。使用此选项,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 令牌配置文件,请执行以下操作:

  1. 确保具有现有密钥库并且所需密钥别名已填充。
  2. 在“运行时”窗口中,打开配置文件。参见下图。
  3. Edit Saml Proile 2
  4. 在“认证设置”区域中,执行以下步骤。注意,输入的任何值都不能为空。
  5. 清除默认选中的“使用默认密钥库”复选框。
  6. 在复选框后面的文本字段中,键入以下内容:
    1. 获得密钥库文件的完整路径。惟一支持的密钥库格式是 JKS。
    2. 密钥库的密码。
    3. WSP 签署响应或签署安全令牌时要使用的密钥别名。
    4. 密钥别名的密码。输入有效的值,即使此值与密钥库密码相同。
  7. 单击“确定”提交更改。
  8. 打开 WSC 安全面板。执行上述相同步骤,添加 WSC 要使用的自定义密钥库详细信息。
  9. 部署客户机并运行应用程序。
  10. WSC 和 WSP 将使用用户指定的自定义密钥库。

为 Liberty 令牌配置文件使用自定义密钥库

要为 Liberty 令牌配置文件使用自定义密钥库,请执行以下操作:

应具有已填充所需密钥别名的现有密钥库。此密钥库应由应用服务器运行时在本地访问(安装应用服务器的物理位置)。

  1. 在“运行时”窗口中打开所需的 Liberty Token Profile。
  2. 使用上一节概述的自定义密钥库的相同设置。
  3. 打开 WSC 安全面板。执行上述相同步骤,添加 WSC 要使用的自定义密钥库详细信息。
  4. 要为 Liberty Token Profile 使用自定义密钥库,必须执行 IDE 的联机帮助主题“Using a Custom Keystore for the Liberty Token Profile”中描述的其他配置。
  5. 运行 Liberty 启用的 WSC。
    它现在使用开发人员指定的自定义密钥库。

用户指定的自定义密钥库对应用服务器实例有效。此实例上的所有已部署应用程序应使用相同的密钥库设置。

更多信息

有关密钥工具使用的说明,请参阅以下文档。


回到顶部

Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by