内容


WebSphere Application Server V6.1

安全新功能

Comments

系列内容:

此内容是该系列 # 部分中的第 # 部分: WebSphere Application Server V6.1

敬请期待该系列的后续内容。

此内容是该系列的一部分:WebSphere Application Server V6.1

敬请期待该系列的后续内容。

引言

IBM WebSphere Application Server V6.1 在安全领域进行了一些非常重要的更改。在这篇简短的文章中,我们将简要说明各个重要的更改,并讨论各自的影响。除了列出各个功能外,我们还将列出与安全相关的问题、抱怨和复杂性,并说明了 V6.1 中提供的用于更方便地解决这些问题的一些新功能。将在以后的文章中对这些更改进行更为详细的讨论。

V6.1 中的新功能

让我们了解一下过去听到的一些愿望和抱怨(这些已在产品的这个新版本中得到了很好的解决)。

“保证 WebSphere Application Server 的安全非常困难”

正如很多人所知的,为了保证缺省 WebSphere Application Server 安装的安全,需要进行相当多的工作。在 WebSphere Application Server V6 高级安全性加强——第 1 部分 中列出了基本步骤,但这仍然需要进行大量的工作。

作为简化产品的主要措施,在 V6.1 中,很多基本安全配置步骤现在已设置为缺省设置——这样做是为了符合缺省安全 原则。其中的一些例子包括:

  • 在安装期间自动启用管理安全性。

  • 缺省情况下,会对所有内部传输进行身份验证。

  • 缺省情况下,会对大部分内部传输进行加密。缺省情况下,DCS(通常在计算单元内运行)保持未加密状态,但可以为其启用加密。

  • 不使用缺省加密密钥,会自动创建计算单元特定的密钥集。

  • 缺省情况下,JNDI 对所有人都是只读的(而不是读/写)。

  • 缺省情况下,消息传递将连接仅限制于授予了总线连接角色的经过身份验证的用户。缺省情况下,AllAuthenticated 不再具有此角色。

由于缺省启用了安全功能,看到此列表的很多人可能会担心 WebSphere Application Server 将变得更难管理。我们还进行了一系列工作来简化安全管理。将在下一部分中对此进行讨论。

“证书、私钥和加密密钥非常难于管理”

另一个麻烦的领域是用于进行加密和身份验证的密钥的管理。信任存储区和密钥存储区的管理现在作为第一类构造进行处理。这包括管理密钥存储区中的证书和密钥,以及管理整个计算单元内这些密钥的复制。提供了大量小增强功能,这些功能在易用性方面得到了很大的提高。其中的一些例子包括:

  • 客户机支持在连接之前未曾访问的服务器时提示(像 SSH 一样)将证书添加到客户机信任存储区(如果需要,可以将其禁用)。

  • 配置 SSL 端点时,管理客户机可以查询服务器,并自动导入服务器的签名证书(当然是在得到管理许可后)。

  • WebServer 插件配置将自动生成 plugin-key.kdb,其中包含 WebSphere Application Server 信任的自签名证书。这极大地简化了一项最为困难的 SSL 配置工作。

  • 在很大程度上消除对 Ikeyman 的使用。通过使用管理工具,可以生成证书、生成证书请求、导入密钥和证书、管理证书和密钥,甚至还能够在整个计算单元内进行共享。

  • 密钥管理不仅应用于 SSL 证书。相同的基础设施还负责管理用于加密 LTPA 令牌的密钥。您甚至还可以使用此控制台管理自己的自定义密钥,应用程序也可以使用 IBM 定义的 API 对其进行访问。应用程序现在可以不必再有此负担了。

  • 现在提供了编程 API 来基于 WebSphere Application Server 管理的 SSL 配置获取 URLStreamHandlers、SSLContext 实例和 SSLSocketFactories。您还可以在线程上设置 SSL 属性,以用于该线程上出现的 SSL 连接。

  • 支持自定义 JSSE 信任和密钥管理器,从而允许对 SSL 握手进行更多的控制。

  • 能够将 SSL 配置与特定的目标主机和端口关联。以前,单个静态 SSL 配置必须处理任何给定协议的所有出站连接。这就允许对具有独特握手要求的目标使用特殊配置。

  • 对证书过期进行了管理。在可能的情况下,会在过期前自动生成新密钥。无法进行此操作时,将通过严重事件流(还可以选择通过电子邮件)发送通知。过期监视是缺省启用的。

  • LTPA 加密密钥会定期自动进行更改。为了避免停机,将同时支持多个密钥版本。

  • 现在提供了更好的硬件加密和硬件密钥存储支持。

要了解更多信息,请参见以下文章:

“我的公司的注册中心基础设施要复杂得多,不只是一个简单的 LDAP 目录”

以前,我们曾需要使用相当简单的 LDAP 注册中心配置,其中仅包含一个 LDAP 目录。在 V6.0.2 之前,如果出现了多个目录,我们要求这个重复情况对应用服务器透明(使用负载平衡程序或 IP 接管)。我们可以使用自定义注册中心绕过这些限制,但现在通过使用 V6.1,我们提供了即时可用的更为复杂的注册中心配置支持。这并不会解决所有问题(在有些情况下,将仍然需要自定义注册中心),但这可帮助处理所遇到的大多数情况。以下是对 V6.1 中的新注册中心支持的简要总结:

  • 支持文件注册中心。对于只有少量用户的小型站点(或在早期原型和开发期间),现在可以在一个文件中管理所有的用户和组。提供了用于管理这些用户的多种管理工具,这些文件将自动在计算单元内复制。

  • 可以将多个 LDAP 目录组合为一个逻辑注册中心。现在,如果您的用户分布在多个目录中,就可以将其组合为一个 WebSphere Application Server 注册中心。只是要注意,用户 ID 必须是唯一的!

  • 直接支持 LDAP 故障转移。现在,您可以按 IP 地址或主机名列出多个 LDAP 服务器副本。如果主应用服务器出现故障,故障将自动转移到备份服务器。

联合存储库现在是首选设置,同时也是缺省目录基础设施,但为了提供兼容性,我们继续支持现有的 LDAP 注册中心、自定义用户注册中心和操作系统注册中心。在将来,我们将对联合注册中心组件进行增强,以支持更复杂的注册中心环境。

要了解更多信息,请参见:Federated repositories

“我需要隔离各个管理员”

在 V6.1 前,管理授权是在整个计算单元范围内进行的。如果针对个体授予了管理权限,则对计算单元中的每个节点、服务器和应用程序都有管理权限。而通过使用 V6.1,现在可以更精细地对管理权限作用范围进行划分。我们将此称为细粒度管理安全性。

不过,这个细粒度授权仅适用于 wsadmin,因此,如果您需要此功能,将需要对管理员进行培训,以便使用 wsadmin 进行管理。幸运的是,由于我们建议始终采用脚本方法进行,因此这不过是对最佳实践进行了进一步的强调而已。

要了解更多信息,请参见: Fine-grained administrative security

“配置消息传递总线来使用安全传输非常困难”

熟悉 WebSphere Application Server V6 高级安全性加强——第 1 部分 中的步骤的读者应该知道,在过去,要使用安全传输相当困难。不仅必须禁用非安全传输,还必须手动确保每个客户机都使用了安全传输。现在,将自动配置所有这些功能,并能够通过管理控制台方便地进行控制。这是通过一个称为被允许的链 (permitted chains) 的新概念实现的,此概念控制可以使用何种类型的传输链(例如,仅允许使用 SSL 的传输链)。

要了解更多信息,请参见:Transport security in service integration bus

“我希望提供从 Windows 桌面到内部网应用程序的单点登录”

WebSphere Application Server V6.1 支持 SPNEGO 信任管理解释器(Trust Association Interceptor,TAI),该解释器允许将 Windows 桌面的 Kerberos 凭据从浏览器发送到 WebSphere Application Server,然后将其作为标识访问 WebSphere 资源。以前发布的 IBM Software Services for WebSphere 提供了一个稍有些不同的 SPNEGO TAI 版本,但现在通过使用 V6.1,我们可获得受到全面支持的产品解决方案。

要了解更多信息,请参见:Single sign-on for HTTP requests using SPNEGO

“我的 Web 应用程序混和使用受保护的和不受保护的 URI,但我仍然需要知道不受保护的 URI 中的用户标识”

提供了一些新 Web 应用程序选项,可以重写缺省 J2EE 身份验证行为。通常,在没有任何授权约束的情况下将请求加入 URI 时,不会设置任何标识。混和使用受保护的和不受保护的 URI 的应用程序有时候会造成一定的困难。有时候,不受保护的 Servlet 仍然需要用户的标识信息(如果可用)。V6.1 现在支持这种行为。您还可以选择对安全机制进行配置,以跨请求保持标识信息。现在,如果用户访问受保护的 URI,然后再访问不受保护的 URI,其标识将为可用状态。当然,匿名用户可以直接像以往一样访问不受保护的 URI——但也可以使用另一个选项关闭此功能!

要了解更多信息,请参见:Web authentication settings

您可能不会注意到的对以前版本的功能增强

另外,我们还希望指出一些作为 WebSphere Application Server V6 的一部分引入但未做大量宣传的安全功能(V6.1 中仍然保留这些功能),以防被忽略。

通用数据库标识传播

构建多层系统的挑战之一就是处理端到端授权和标识流。一个特别的挑战例子就是使用数据库。很多数据库都有强大的内置审核和授权机制,以保护公司数据。对于典型的 J2EE 应用程序,会对所有数据库访问使用单个连接池标识。这会对数据库本机访问控制和审核功能的价值带来影响。在 WebSphere Application Server V6 中,我们引入了一项新功能,从而能够(要使用一些自定义代码)将发出请求的用户的标识信息发送到数据库。现在,您可以利用 J2EE 应用程序的强大功能,而同时仍然能使用数据库的本机安全功能。

要了解更多信息,请参见:Database identity propagation in WebSphere Application Server

可插入的密码存储

WebSphere Application Server 将经过 XOR 编码的密码存储在 XML 配置文件中。这通常都是可以的,因为真正更强大的解决方案将要求硬件支持。虽然这样说,但如果希望更改密码存储的方式(可以包括采用具有硬件保护密钥的加密形式的自定义密码存储),则可以使用 V6.0.2 进行此操作。

要了解更多信息,请参见:Plug point for custom password encryption

LDAP 故障转移

正如前面提到的,V6.1 包括对 LDAP 故障转移的支持。很多人没有认识到,实际在 V6.0.2 中就引入了 LDAP 故障转移。

要了解更多信息,请参见:Updating LDAP binding information

结束语

我们简要介绍了 WebSphere Application Server V6.1 中目前提供的一些重要的安全新功能。这个版本在缺省安全性、易用性和安全功能方面进行了大幅度的改进。我们希望您和我们一样兴奋,热切期待在您的 WebSphere Application Server 环境中利用这些功能。

致谢

我要感谢我的同事 Peter Birk 和 Alasdair Nottingham 在准备本文的过程中提供的帮助。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=153944
ArticleTitle=WebSphere Application Server V6.1: 安全新功能
publish-date=08142006