安全性

下列信息概括了 WebSphere® Application Server 中的安全性。

IBM® WebSphere Application Server 提供安全性基础结构和机制来保护敏感的 Java™ 2 平台企业修订版 ((J2EE) 资源和管理资源。它还可以满足企业端对端安全性对下列各方面的要求:
  • 认证
  • 资源访问控制
  • 数据完整性
  • 机密性
  • 保密性
  • 安全互操作性
IBM WebSphere Application Server 安全性基于工业标准,而且它具有的开放体系结构可以确保安全地连接企业信息系统 (EIS) 并与其互操作,其中包括:
  • Database 2 (DB2®)
  • CICS®
  • [AIX Solaris HP-UX Linux Windows][z/OS]信息管理系统 (IMS™)
  • MQ Series
  • Lotus® Domino®
  • IBM Directory
WebSphere Application Server 也支持其他安全提供程序,其中包括:
  • [z/OS]任何与系统授权工具 (SAF) 兼容的安全服务器,包括 IBM z/OS® Security Server 资源访问控制设施 (RACF®)
  • 反向安全代理服务器(包括 WebSEAL)

[z/OS]标识管理:

[z/OS]对于 WebSphere Application Server V7.x 和前发行版

[z/OS]要利用 SAF 安全性功能,用户必须使用基于 z/OS 的用户标识来标识其自身。您可以使用主体映射模块将 J2EE 标识映射至基于平台的用户标识(在此示例中为 RACF 用户标识)。必须创建从 LDAP 用户标识到 RACF 用户标识的主体映射,才能完成 SAF EJBROLE 检查。这意味着映射登录模块必须可用于从 LDAP 注册表中配置的用户派生 z/OS 用户标识。(SMF 审计(使用 SAF)可用于跟踪这些更改。)

[z/OS]WebSphere Application Server V8.0 和更高版本的新内容:

[z/OS]您现在具有两个分布式身份映射选项:
  • 使用 JAAS 映射模块将 J2EE 身份映射到 SAF 身份。
  • 使用 SAF 中的分布式身份映射功能,这需要特定的 SAF 版本。不应该在 WebSphere 中配置任何 JAAS 映射模块。在这种情况下,用户使用其分布式用户身份来标识自身;例如,LDAP 注册表中的用户身份。由使用 RACMAP SAF 概要文件的 z/OS 安全性管理员处理映射。此选项通过允许在审计记录中记录分布式用户身份和 SAF 身份来增强 SMF 审计。有关更多信息,请参阅“使用 SAF 的分布式身份映射”。

基于业界标准

IBM WebSphere Application Server 提供基于策略和许可权的统一模型,根据 J2EE 规范来保护 Web 资源、Web Service 端点和 Enterprise JavaBeans。具体地说,WebSphere Application Server 符合 Java EE 6 规范,且通过了 J2EE 兼容性测试套件。

WebSphere Application Server 安全性是层式体系结构,基于操作系统平台、Java 虚拟机 (JVM) 和 Java 2 安全性。此安全模型利用大量安全性技术集合,包括:
  • Java 2 安全性模型,它提供对系统资源的基于策略、细颗粒度和基于许可权的访问控制。
  • 除了安全认证服务 (SAS) 安全性协议之外,还有公共安全互操作性 V2 (CSIv2) 安全性协议。先前的 WebSphere Application Server 发行版支持这两种协议。CSIv2 是 J2EE 1.4 规范的主要部分,并且对于不同供应商的应用程序服务器间的互操作性以及与企业 CORBA 服务的互操作是必不可少的。
    [AIX Solaris HP-UX Linux Windows][IBM i][z/OS]要点: 只有在 V6.0.x 与 V6.1 单元中联合的先前版本服务器之间才支持 SAS。
  • 用于 Java 应用程序、Servlet 和企业 bean 的 Java 认证和授权服务 (JAAS) 编程模型。
  • J2EE 连接器体系结构,用于插入支持访问企业信息系统的资源适配器。

支持安全套接字通信、消息加密和数据加密的标准安全模型和接口有 Java 安全套接字扩展 (JSSE) 和 Java 密码术扩展 (JCE)。

开放式体系结构范例

应用程序服务器充当多层企业计算框架的主要部分。IBM WebSphere Application Server 采用开放式体系结构范例,并提供许多插件点来与企业软件组件集成在一起。插件点基于所适用的标准 J2EE 规范。

开放式体系结构范例

深蓝色加阴影的背景指示 WebSphere Application ServerV9.0 与其他业务应用程序组件之间的边界。

[AIX Solaris HP-UX Linux Windows][IBM i]WebSphere Application Server 提供简单 WebSphere 认证机制 (SWAM)、轻量级第三方认证 (LTPA) 以及 Kerberos 作为认证机制。只能将一个用户注册表实现配置成 WebSphere Application Server 安全域的活动用户注册表。WebSphere Application Server 提供下列用户注册表实现:UNIX、Windows 和 IBM i 本地操作系统和轻量级目录访问协议 (LDAP)。它还提供基于文件和 Java 数据库连接 (JDBC) 的用户注册表引用实现。它支持认证机制和用户注册表的灵活组合。SWAM 的配置很简单,并且对于单一应用程序服务器环境很有用。如果启用了 身份断言,那么有可能在分布式环境中使用 SWAM。身份断言功能仅可用于 CSIv2 安全性协议。
注: 不推荐在 WebSphere Application Server 的前发行版中使用 SWAM,而且将来的发行版中会除去 SWAM。

[AIX Solaris HP-UX Linux Windows][IBM i]LTPA 认证机制是为所有平台安全性而设计。下游服务器可验证安全性令牌。它还支持设置与反向安全代理服务器和单点登录 (SSO) 的信任关联关系,这将在以后讨论。除了 LTPA 和 LDAP 组合或定制用户注册表接口外,V6.x 或更高版本还支持带有本地操作系统用户注册表接口的 LTPA。新配置对于具有多个应用程序服务器的单个节点特别有用。如果本地操作系统用户注册表实现是集中式用户注册表(如 Windows 域控制器)或可以在多个节点上保持一致状态,那么它可以在分布式环境中起作用。

[AIX Solaris HP-UX Linux Windows][IBM i][z/OS]WebSphere Application Server 支持 J2EE 连接器体系结构并提供容器管理的认证。它提供缺省 Java 2 连接器 (J2C) 主体和凭证映射模块,该模块将 任何已认证的用户凭证映射至指定的企业信息系统 (EIS) 安全域的密码凭证。映射模块是根据 Java 2 连接器和 JAAS 规范设计的特殊 JAAS 登录模块。可以插入其他映射登录模块。

[z/OS]

用户注册表和访问控制

用户注册表中包含的用户信息和组信息。在 WebSphere Application Server 中,用户注册表认证用户并检索有关用户和组的信息,以执行与安全性相关的功能(包括认证和授权)。

WebSphere Application Server 提供下列用户注册表实现:
  • 本地操作系统(基于 SAF)
  • LDAP
  • 联合存储库

除了支持本地操作系统、LDAP 和联合存储库注册表以外,WebSphere Application Server 还提供了插件以使用定制注册表功能(也称为定制用户注册表)来支持任何注册表。

如果选择了 WebSphere Application Server 的本地操作系统注册表实现,那么该实现可让您直接使用 WebSphere 环境中的安全访问工具 (SAF) 来集成 z/OS Security Server 的功能,例如资源访问控制工具 (RACF)。如果配置的是本地操作系统注册表之外的注册表,那么也可以利用具有两个选项的 z/OS Security Server 工具。可以在适当的系统登录配置中配置可插入 JAAS 映射模块(后跟 WebSphere Application Server for z/OS 提供的 JAAS 登录模块)。在 WebSphere Application Server V8.5 中,也可以使用分布式身份映射功能。

有关更多信息,请参阅选择注册表或存储库

WebSphere Application Server 配置:使用 WebSphere Application ServerV9.0 for z/OS,您可以将现有非 z/OS 应用程序与特定于 z/OS 的工具(例如系统授权工具 (SAF) 和 RACF)集成在一起。这可让您统一 WebSphere Application Server for z/OS 平台和非 z/OS 平台的注册表。例如:

表 1. 示例 WebSphere Application Server 注册表配置.

此表举例说明了 WebSphere Application Server 注册表配置

应用程序服务器配置 注册表类型 授权方法 优点
WebSphere Application Server LDAP WebSphere 绑定和外部安全提供程序(如 Tivoli® Access Manager) 共享的注册表(跨不同种类的平台)
WebSphere Application Server for z/OS RACF WebSphere 绑定和 RACF EJBROLE 集中访问和审计能力(可以包括运行 V4.0 的服务器)
WebSphere Application Server 混合环境 LDAP 或定制 WebSphere 绑定、外部安全提供程序和 RACF EJBROLE 共享的注册表、集中访问和审计功能
下列图片显示了上表中所描述的内容。
  • WebSphere Application Server 网络注册表配置 网络注册表配置
  • WebSphere Application Server for z/OS 网络注册表配置:z/OS 网络注册表配置
  • 具有 z/OS 安全性扩展的 WebSphere Application Server 网络注册表 具有 z/OS 安全性扩展的网络注册表

认证机制

WebSphere Application Server 中,支持下列认证机制:
  • 轻量级第三方认证 (LTPA)

    轻量级第三方认证为已认证的用户生成安全性令牌,该安全性令牌可用于 在接下来调用单点登录 (SSO) 域的同一服务器或其他服务器时代表已认证的用户。

  • Kerberos

    已针对此 WebSphere Application Server 发行版添加对 Kerberos 作为认证机制的安全性支持。Kerberos 是一种成熟、灵活、开放式且非常安全的网络认证协议。Kerberos 包括认证、相互认证、消息完整性和机密性以及授权功能。

  • 简单 WebSphere 认证机制 (SWAM)
    SWAM 的配置很简单,并且对于单一应用程序服务器环境很有用,但是对每个请求强制执行用户标识和密码认证。
    注: 不推荐在 WebSphere Application Server 的前发行版中使用 SWAM,而且将来的发行版中会除去 SWAM。

IIOP 认证协议

IIOP 认证协议是指用来认证从 Java 客户机到 WebSphere Application Server for z/OS 的请求(或者 J2EE 应用程序服务器之间的请求)的机制。公共安全互操作性 V2 (CSIv2) 是在 WebSphere Application Server for z/OS V6.x 或更高版本中实现,视为策略性协议。

[z/OS]

WebSphere Application Server for z/OS 连接器安全性

WebSphere Application Server 支持 J2EE 连接器体系结构并提供容器管理的认证。它提供缺省 J2C 主体和凭证映射模块,该模块将任何已认证的用户凭证映射至指定的企业信息系统 (EIS) 安全域的密码凭证。如果 EIS 系统位于 WebSphere Application Server 所在的同一个安全域中,那么也支持特定于 z/OS 的连接器。 在这种情况下,不需要密码,因为用于 J2EE 请求的已认证凭证可用作 EIS 凭证。

Web Service 安全性

WebSphere Application Server 可让您根据结构化信息标准促进组织 (OASIS) Web Service 安全性 V1.1 规范来保护 Web Service。这些标准说明如何为 Web Service 环境中交换的消息提供保护。此规范定义了保护消息的完整性和机密性的核心工具,并提供了将与安全相关的声明与消息相关联的机制。

信任关联

信任关联可让您将第三方安全服务器与 IBM WebSphere Application Server 安全性集成在一起。更确切地说,当 WebSphere Application Server 将它自已的授权策略应用到由代理服务器传递的结果凭证时,逆向代理服务器可以充当前端认证服务器。逆向代理服务器会将其认证策略应用到每个已分派给 WebSphere Application Server 的 Web 请求。实现信任关联拦截器 (TAI) 的产品有:
  • IBM Tivoli Access Manager for e-business
  • WebSEAL
  • 高速缓存代理
有关使用信任关联的更多信息,请参阅信任关联

安全性属性传播

安全性属性传播可让 WebSphere Application Server 将安全性属性从配置中的一台服务器传输到另一台服务器。安全性属性包括已认证的主体集内容和安全上下文信息。WebSphere Application Server 可以从下列任一项获取这些安全性属性:
  • 企业用户注册表,它查询静态属性
  • 定制登录模块,它可以查询静态或动态属性
安全性属性传播使用 Java 序列化为包含在主体集中的任何对象提供传播服务。有关使用安全性属性传播的更多信息,请参阅安全性属性传播

单点登录互操作性方式

WebSphere Application Server 中,互操作性方式选项在 WebSphere Application Server V6.1.x 或更高版本之间启用了单点登录 (SSO) 连接,以与应用程序服务器的先前版本互操作。如果选择此选项,那么 WebSphere Application Server 会将旧样式 LtpaToken 添加到响应,以便响应能发送到其他只能处理此令牌类型的服务器。只有在启用了 Web 入站安全性属性传播选项的情况下,此选项才适用。有关单点登录的更多信息,请参阅实现单点登录以最小化 Web 用户认证

[AIX Solaris HP-UX Linux Windows][IBM i][z/OS]

使用 Web 容器和 EJB 容器的 J2EE 资源的安全性

每个容器提供两种类型的安全性:声明式安全性程序化安全性。在声明式安全性中,应用程序的安全性结构(包括数据完整性和机密性、认证要求、安全角色和访问控制)以应用程序外部的形式表示。特别地,部署描述符是 J2EE 平台中声明式安全性的主要手段。WebSphere Application Server 会维护 J2EE 安全策略,其中包括从部署描述符派生的信息,以及由部署者和管理员在 XML 描述符文件集中指定的信息。运行时,容器使用 XML 描述符文件中定义的安全策略执行数据约束和访问控制。当使用声明式安全性不足以表示应用程序的安全模型时,应用程序代码可使用程序化安全性作出访问决定。程序化安全性的应用程序编程接口 (API) 由 Enterprise JavaBeans (EJB) EJBContext 接口的两个方法(isCallerInRolegetCallerPrincipal)以及 Servlet HttpServletrequest 接口的三个方法(isUserInRolegetUserPrincipalgetRemoteUser)组成。

[AIX Solaris HP-UX Linux Windows][z/OS]

Java 2 安全性

WebSphere Application Server 支持 Java 2 安全性模型。系统代码(例如管理子系统、Web 容器和 EJB 容器)在 WebSphere Application Server 安全域中运行,这在目前的实现中,被授予 AllPermission 权限并且可以访问所有系统资源。应用程序代码在应用程序安全域中运行,缺省情况下,根据 J2EE 规范它被授予许可权并且仅可以访问有限的系统资源集。WebSphere Application Server 运行时类由 WebSphere Application Server 类装入器保护,并且对应用程序代码保持不可视。

[AIX Solaris HP-UX Linux Windows][z/OS]

Java 2 平台企业修订版 (连接器安全性

WebSphere Application Server 支持 J2EE 连接器体系结构并提供容器管理的认证。它提供缺省 J2C 主体和凭证映射模块,该模块将任何已认证的用户凭证映射至指定的企业信息系统 (EIS) 安全域的密码凭证。

[z/OS]如果 EIS 系统位于 WebSphere Application Server 所在的同一个安全域中,那么也支持特定于 z/OS 的连接器。 在这种情况下,不需要密码,因为用于 J2EE 请求的已认证凭证可用作 EIS 凭证。

[z/OS]有关更多信息,请参阅连接线程标识

[z/OS]WebSphere Application Server 进程

缺省情况下,所有应用程序服务器进程共享公共安全配置,这是在单元级别安全性 XML 文档中定义的。安全配置确定是否实施了 WebSphere Application Server 安全性,是否实施了 Java 2 安全性,以及确定认证机制与用户注册表配置、安全协议配置、JAAS 登录配置和安全套接字层配置。应用程序可以有自己的独 特安全要求。每个应用程序服务器进程均可以创建个别服务器安全配置,以解决其自己的安全性要求或映射到 WebSphere 安全域。不是所有的安全配置都可以在应用程序服务器级别进行修改。某些可以在应用程序服务器级别上修改的安全配置包括是 否应该实施应用程序安全性、是否应该实施 Java 2 安全性,且包括安全协议配置。WebSphere 安全域允许更多地控制安全配置,并且可以映射到个别服务器。有关更多信息,请阅读“多个安全域”。

[z/OS]有关更多常规信息,请参阅具有线程标识支持的安全状态

管理子系统安全配置总是由单元级别安全性文档确定的。Web 容器和 EJB 容器安全性配置由可选的个别服务器级别安全性文档决定,该文档优先于单元级别安全性文档。

单元级别和应用程序服务器级别的安全配置由基于 Web 的管理控制台应用程序或适当的脚本编制应用程序进行管理。

[z/OS]注: 无法在服务器级别更改认证机制。

Web 安全性

如果对 Web 资源指定了安全策略,并且实施了 IBM WebSphere Application Server 安全性,那么在 Web 客户机请求资源时 Web 容器会执行访问控制。如果不存在任何认证数据,那么 Web 容器会根据指定的认证方法来质询 Web 客户机以获取认证数据,从而确保满足数据约束,并确定已认证的用户是否具有需要的安全角色。WebSphere Application Server 支持下列登录方法:
  • HTTP 基本认证
  • HTTPS 客户机认证
  • 基于表单的登录
  • 简单且受保护的 GSS-API 协商 (SPNEGO) 令牌
将客户机证书映射到 WebSphere Application Server 安全凭证时会使用 UserRegistry 实现来执行映射。

[AIX Solaris HP-UX Linux Windows][IBM i]在 WebSphere Application Server 上,本地操作系统用户注册表不支持映射功能。

[AIX Solaris HP-UX Linux Windows][IBM i]当配置了 LTPA 认证机制并启用了单点登录 (SSO) 时,向已认证的客户机发出安全性 Cookie,此 Cookie 表示指定的安全域中的用户。

建议使用安全套接字层 (SSL),以保护安全性 Cookie 或基本认证信息不被拦截和重放。如果已配置信任关联,那么 WebSphere Application Server 可以根据与安全逆向代理服务器建立的信任关系,将已认证的用户身份映射到安全凭证。

Web 安全性

考虑 Web 安全性协调程序和 EJB 安全性协调程序时:
  1. Web 安全性协调程序通过使用访问管理器实现来执行基于角色的访问控制。访问管理器根据源自部署描述符的安全策略做出授权决定。如果已认证的用户主体具有某个必需的安全角色,那么它可访问已请求的 Servlet 或 JSP 文件。Servlet 和 JSP 文件可以使用下列 HttpServletRequest 方法:isUserInRolegetUserPrincipalgetRemoteUser。例如,管理控制台使用 isUserInRole 方法确定要提供给用户主体的适当管理功能集。
  2. EJB 安全性协调程序通过使用访问管理器实现来执行基于角色的访问控制。访问管理器根据源自部署描述符的安全策略做出授权决定。如果已认证的用户主体具有必需的安全角色之一,那么它可以访问请求的 EJB 方法。EJB 代码可以使用 EJBContext 方法 isCallerInRolegetCallerPrincipal。EJB 代码还可以使用 JAAS 编程模型来执行 JAAS 登录以及 WSSubject doAsdoAsPrivileged 方法。doAsdoAsPrivileged PrivilegedAction 块中的代码在主体集标识下执行。否则,根据运行方 式配置,EJB 方法在运行方式标识或调用者标识下执行。

EJB 安全性

当启用了安全性时,EJB 容器执行对 EJB 方法调用的访问控制。无 论是否为特定 EJB 方法定义了方法许可权,都会进行认证。

Java 应用程序客户机可以通过若干种方式提供认证数据。使用 sas.client.props 文件,Java 客户 机可以指定是使用用户标识和密码进行认证还是使用 SSL 客户机证书进行认证。如 sas.clinet.props 文件中的定义,客户机证书存储在密钥文件或硬件加密卡中。可以在 sas.client.props 文件中定义用户标识和密码(也可以不定义)。

运行时期间,Java 客户机可以执行程序化登录或执行惰性验证

在惰性验证中,当 Java 客户机首次访问受保护 的企业 bean 时,安全运行时会尝试获取必需的认证数据。根据 sas.client.props 文件中的配置设置,安全运行时从该文件查找认证数据或提示用户。或者 Java 客户机可以使用程序化登录。WebSphere Application Server 支持 JAAS 编程模型,并且 JAAS 登录 (LoginContext) 是建议的程序化登录方式。不推荐在 V6.x 和 V9.0 中使用 login_helper request_login 辅助控件函数。编程到 login_helper APT 的 Java 客户机可以在此版本中运行。

EJB 安全性协调程序通过使用访问管理器实现来执行基于角色的访问控制。

访问管理器根据源自部署描述符的安全策略做出授权决定。如果已认证的用户主体具有必需的安全角色之一,那么它可以访问请求的 EJB 方法。EJB 代码可以使用 EJBContext 方法 isCallerInRole 和 getCallerPrincipal。EJB 代码还可以使用 JAAS 编程模型执行 JAAS 登录,以及 WSSubject doAs 和 doAsPrivileged 方法。 doAs 和 doAsPrivileged PrivilegedAction 块中的代码在主体集标识下执行。否则,根据运行方式配置,EJB 方法在运行方式标识或调用者标识下执行。J2EE RunAs 规范在企业 bean 级别上执行。当指定运行方式标识时,它应用于所有的 bean 方法。此版本仍然支持 V4.0 中引入的方法级别 IBM RunAs 扩展。

[z/OS]注: 完成授权之后,在下游使用该运行方式标识。这通常是调用者的标识,但也可以是授权的标识。

经联邦信息处理标准核准的

联邦信息处理标准 (FIPS) 是美国国家标准技术学会 (NIST) 为联邦计算机系统发布的标准和准则。之所以开发 FIPS,是因为当时联邦政府迫切地希望达成统一标准(例如鉴于安全性和互操作性方面的需求),但却没有可接受的业界标准或解决方案。

WebSphere Application Server 集成了密码模块,其中包括 Java 安全套接字扩展 (JSSE) 和 Java 密码术扩展 (JCE),它们都已经通过了 FIPS 140-2 认证。

[AIX Solaris HP-UX Linux Windows][IBM i][z/OS]有关更多信息,请参阅配置联邦信息处理标准 Java 安全套接字扩展文件

IBMJCEFIPS 模块支持下列对称密码套件:
  • AES (FIPS 197)
  • TripleDES (FIPS 46-3)
  • SHA1 消息摘要算法 (FIPS 180-1)
IBMJCEFIPS 模块支持下列算法:
  • 数字签名 DSA 和 RSA 算法 (FIPS 186-2)
  • ANSI X 9.31 (FIPS 186-2)
  • IBM Random Number Generator

IBMJCEFIPS 加密模块包含经 FIPS 核准的算法,这些算法组成 IBM JCE 模块中那些算法的真子集。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=welc_security
文件名:welc_security.html