|
以下部分概述了 WebLogic Server 的安全系统。要获得更宽泛的概述,请参阅了解 WebLogic 安全性。
| 注意: |
在本文档中,6.x 一词是指 WebLogic Server 6.0 和 6.1 及其关联的 Service Pack。 |
WebLogic Server 中的安全领域
WebLogic Server 中的安全服务简化了安全的配置和管理,同时提供了多种可靠的功能,可确保 WebLogic Server 部署的安全。安全领域充当控制作用域的一种机制。每个安全领域由一组已配置的安全提供程序、用户、组、安全角色及安全策略组成。一个域中可以配置多个安全领域;但是,只能有一个安全领域处于活动状态。WebLogic Server 提供两个默认的安全领域:
myrealm - 默认情况下,已配置 WebLogic 仲裁、身份验证、标识声明、授权、角色映射和凭据映射提供程序。
CompatibilityRealm - 提供 6.x 安全配置的向后兼容性。可以通过 CompatibilityRealm 访问现有的 6.x 安全配置。
可以配置新的安全领域来提供所需的安全服务,然后将该新的安全领域设置为默认安全领域,以此来自定义身份验证和授权功能。
有关 WebLogic Server 中的默认安全配置的信息,请参阅WebLogic Server 中的默认安全配置。
有关配置安全领域并将其设置为默认安全领域的信息,请参阅自定义默认安全配置。
有关兼容性安全的信息,请参阅使用兼容性安全。
安全提供程序
安全提供程序是处理特定安全方面(例如身份验证和授权)的模块化组件。虽然应用程序可以利用由默认 WebLogic 安全提供程序提供的服务,但借助 WebLogic 安全服务的灵活的基础结构,安全供应商还可以编写自己的自定义安全提供程序来用于 WebLogic Server。WebLogic 安全提供程序和自定义安全提供程序可以混合搭配使用,以创建独有的安全解决方案,这样,组织既可以利用某些领域的新技术,同时还可以保留其他领域中的成熟方法。WebLogic 管理控制台允许通过一个统一的管理接口来监视和管理所有安全提供程序。
WebLogic 安全服务支持以下类型的安全提供程序:
身份验证 - 身份验证是证明或验证用户或系统进程标识的过程。身份验证还包括记忆、传输标识信息,以及在需要时将这些信息提供给系统的各种组件。WebLogic 安全服务支持的身份验证提供程序提供以下类型的身份验证:
用户名和密码身份验证
直接通过 WebLogic Server 进行的基于证书的身份验证
通过外部 Web 服务器代理的基于 HTTP 证书的身份验证
标识声明 - 标识声明提供程序是指执行边界身份验证(一种使用标记的特殊身份验证)的身份验证提供程序。标识声明包括通过使用客户端提供的标记(这些标记可能存在于请求之外)建立客户端标识。因此,标识声明提供程序的功能是验证标记并将其映射到用户名。完成此映射后,可以使用身份验证提供程序的 LoginModule 将用户名转换为委托人(已通过身份验证的用户、组或系统进程)。
授权 - 授权是限制用户与 WebLogic 资源间的交互以确保实现完整性、机密性和可用性的过程。换句话说,当身份验证提供程序建立了某个用户的标识后,授权将负责确定是否允许该用户访问 WebLogic 资源。授权提供程序便是提供此类服务的提供程序。
角色映射 - 可以向多个用户分配一个或多个角色,然后为具有特定角色的用户指定访问权限。角色映射提供程序会获取计算出的授予给定资源请求者的一组角色,然后将该信息提供给授权提供程序,以便授权提供程序能够针对使用基于角色的安全的 WebLogic 资源(例如,Web 应用程序和 Enterprise JavaBean (EJB))回答“是否允许访问?”这个问题。
仲裁 - 如果安全领域中配置了多个授权提供程序,则对于给定的资源,每个授权提供程序可能会对“是否允许访问”这个问题返回不同的答案。而仲裁提供程序的主要功能便是在多个授权提供程序的回答不一致时决定如何处理。仲裁提供程序通过衡量每个授权提供程序的答案并返回最终的访问决定来解决授权冲突。
凭据映射 - 凭据映射是将 WebLogic Server 使用的凭据映射到旧式系统或远程系统中使用的凭据,以此来指示 WebLogic Server 如何连接到该系统中的给定资源。换句话说,凭据映射允许 WebLogic Server 代表已通过身份验证的主题登录到远程系统中。凭据映射提供程序便是通过这种方式映射凭据的。
密钥库 - 密钥库是一种机制,用于创建和管理对私钥以及由可信证书颁发机构颁发的证书进行密码保护的存储器。密钥库可以用于可能需要它进行身份验证或签名目的的应用程序。在 WebLogic Server 安全体系结构中,WebLogic 密钥库提供程序用于访问密钥库。
| 注意: |
不赞成使用 WebLogic Server 密钥库提供程序,仅支持使用该提供程序实现向后兼容性。应改用密钥库。有关配置密钥库的详细信息,请参阅配置用于生产环境的密钥库。 |
证书查找和验证 (CLV) - 为进行标识和信任,需要找到并验证 X.509 证书。CLV 提供程序接收证书、证书链或证书引用,完成证书路径(如有必要)并验证该路径中的所有证书。CLV 提供程序分为两种:
证书路径生成器查找、(可选)完成证书路径并验证证书。
证书路径验证器查找并(可选)完成证书路径、验证路径并执行额外的验证(例如,撤消检查)。
证书注册表 - 证书注册表是一种向安全领域添加证书撤消检查的机制。注册表中存储有效证书的列表。只有经过注册的证书才有效。证书的撤消通过从证书注册表中删除证书来完成。该注册表存储在嵌入式 LDAP 服务器中。证书注册表既是一个证书路径生成器,也是一个证书路径验证器。
审核 - 审核是为非否认目的而收集、存储和分发有关安全请求及其请求结果的信息的过程。换句话说,审核提供对计算机活动的电子跟踪。审核提供程序便是提供此类服务的提供程序。
有关 WebLogic 安全提供程序提供的功能的信息,请参阅配置 WebLogic 安全提供程序和配置身份验证提供程序
有关默认安全配置的信息,请参阅 WebLogic Server 中的默认安全配置。
有关编写自定义安全提供程序的信息,请参阅开发 WebLogic Server 的安全提供程序。
安全策略和 WebLogic 资源
WebLogic Server 使用安全策略(替换了 WebLogic Server 6.x 中使用的 ACL 和权限)保护 WebLogic 资源。安全策略回答对 WebLogic 资源“哪些人有访问权限”这个问题。当定义 WebLogic 资源与用户、组或安全角色之间的关联时,将创建安全策略。也可以选择将时间约束与安全策略相关联。在您向 WebLogic 资源分配一个安全策略之前,该资源没有任何保护。
创建安全策略是一个包含多个步骤的过程,其中包括多种选择。要全面理解这一过程,请阅读使用角色和策略确保 WebLogic 资源安全。该文档应与“确保 WebLogic 安全”结合使用,才能确保 WebLogic Server 部署的安全得到全面配置。
WebLogic 资源
WebLogic 资源是一种用于表示基本 WebLogic Server 实体的结构化对象,可以对该实体进行保护,以免受到非授权访问。WebLogic Server 定义了下列资源:
管理资源,例如 WebLogic Server 管理控制台和 WebLogic 脚本工具。
表示企业应用程序的应用程序资源。此类型的资源包括各个 EAR(企业应用程序归档文件)文件以及各个组件(例如,EAR 中包含的 EJB JAR 文件)。
根据 Microsoft 框架设计为程序组件对象的组件对象模型(Component Object Model,简称 COM)资源。此类型的资源包括通过 BEA 双向 COM-Java (jCOM) 桥接工具访问的 COM 组件。
设计为资源适配器的企业信息系统(Enterprise Information System,简称 EIS)资源,这些适配器允许将 Java 应用程序与现有的企业信息系统集成在一起。这些资源适配器又称为连接器。
Enterprise JavaBean (EJB) 资源,包括 EJB JAR 文件、EJB JAR 中的各个 EJB 以及 EJB 上的各个方法。
Java DataBase Connectivity (JDBC) 资源,包括连接缓冲池组、单个连接缓冲池以及 Multipool。
Java 命名和目录接口 (JNDI) 资源。
Java 消息服务 (JMS) 资源。
与 WebLogic Server 实例或服务器相关的资源。此类型的资源包括启动、关闭、锁定或取消锁定服务器的操作。
与 Web 应用程序相关的 URL 资源。此类型的资源可以是 Web 应用程序归档 (WAR) 文件,也可以是 Web 应用程序中的单个组件(例如,Servlet 和 JSP)。
| 注意: |
不赞成使用 Web 资源。应改用 URL 资源。 |
与以下项目相关的 Web Service 资源:可以由基于 Web 的分布式应用程序的组件共享和使用的服务。此类型的资源可以是整个 Web Service,也可以是 Web Service 的单个组件(例如,无状态会话 EJB、该 EJB 中的特定方法、包含 web-services.xml 文件的 Web 应用程序等)。
远程资源。
部署描述符和 WebLogic Server 管理控制台
WebLogic Server 提供了用于配置安全角色和策略配置的多个模型。在标准 Java Enterprise Edition 模型下,可以在 Web 应用程序或 EJB 部署描述符中定义角色映射和策略。WebLogic 安全服务可以使用部署描述符中定义的信息来授予安全角色并定义 Web 应用程序和 EJB 的安全策略。当首次引导 WebLogic Server 时,会将 web.xml、weblogic.xml、ejb-jar.xml 或 weblogic-ejb-jar.xml 部署描述符中存储的安全角色和安全策略信息加载到默认安全领域中配置的授权和角色映射提供程序中。然后可以通过管理控制台对该信息进行更改。
要使用部署描述符中的信息,安全领域中必须至少有一个授权和角色映射提供程序来实现 DeployableAuthorizationProvider 和 DeployableRoleProvider 安全服务提供程序接口 (SSPI)。此 SSPI 允许提供程序存储(而不是检索)部署描述符中的信息。默认情况下,WebLogic 授权和角色映射提供程序实现此 SSPI。
在通过管理控制台更改了部署描述符中的安全角色和安全策略后,如果需要继续通过管理控制台修改该信息,可以设置安全领域的配置选项,以确保当重新引导 WebLogic Server 时,通过控制台所做的更改不会被旧信息所覆盖。
有关详细信息,请参阅“使用角色和策略确保 WebLogic 资源安全”中的用于确保 Web 应用程序和 EJB 资源安全的选项。
WebLogic Server 中的默认安全配置
为简化安全的配置和管理,WebLogic Server 提供了默认安全配置。在默认安全配置中,myrealm 设置为默认安全领域,而 WebLogic 仲裁、身份验证、标识声明、XACML 授权、凭据映射、XACML 角色映射和证书路径提供程序则被定义为安全提供程序。WebLogic Server 的嵌入式 LDAP 服务器用作这些安全提供程序的数据存储。要使用默认安全配置,需要定义安全领域中的用户、组和安全角色并创建保护域中的 WebLogic 资源的安全策略。
| 注意: |
WebLogic Server 包含 WebLogic 授权提供程序和 WebLogic 角色映射提供程序,在管理控制台及其他位置中,前者被称为默认授权者,后者被称为默认角色映射者。从 WebLogic Server 9.1 开始,这些提供程序不再是新建安全领域中的默认提供程序。而改为使用 XACML 授权提供程序和 XACML 角色映射提供程序作为默认的提供程序。 |
有关 WebLogic 安全提供程序提供的功能的描述,请参阅了解 WebLogic 安全性。如果 WebLogic 安全提供程序不能完全满足用户的安全要求,可以补充或替换它们。请参阅开发 WebLogic Server 的安全提供程序。
如果默认安全配置不符合用户的要求,则可以创建新的安全领域并使用 WebLogic 和自定义安全提供程序的任意组合,然后将新的安全领域设置为默认安全领域。请参阅自定义默认安全配置。
配置 WebLogic 安全:主要步骤
由于 WebLogic Server 的安全功能是紧密相关的,因此在配置安全时,很难确定应从何处着手。实际上,配置 WebLogic Server 部署的安全可以是一个迭代过程。在此过程中,虽然可以使用多种步骤序列,但 BEA Systems 建议使用以下过程:
通过阅读为什么要自定义默认安全配置?确定是否需使用默认安全配置。
如果要使用默认安全配置,请从步骤 3 开始。
如果不使用默认安全配置,请从步骤 2 开始。
在默认安全领域中配置其他安全提供程序(例如,配置 LDAP 身份验证提供程序而不是使用 WebLogic 身份验证提供程序)或自定义安全提供程序。此步骤可选。默认情况下,WebLogic Server 在默认安全领域 (myrealm) 中配置 WebLogic 安全提供程序。有关需要自定义默认安全配置的情形的信息,请参阅为什么要自定义默认安全配置?。有关创建自定义安全提供程序的信息,请参阅开发 WebLogic Server 的安全提供程序。
| 注意: |
也可以创建新的安全领域,然后在该安全领域中配置安全提供程序(WebLogic 或自定义),最后将该新安全领域设置为默认安全领域。请参阅自定义默认安全配置。 |
也可以选择配置嵌入式 LDAP 服务器。WebLogic Server 嵌入式 LDAP 服务器使用默认选项配置。但是,用户可能需要更改这些选项才能在自己的环境中优化使用嵌入式 LDAP 服务器。请参阅管理嵌入式 LDAP 服务器。
确保用户帐户得到适当地保护。WebLogic Server 提供了一组保护用户帐户的配置选项。默认情况下,这些选项都设置为最高保护级别。但是,在 WebLogic Server 的开发和部署过程中,可能需要降低对用户帐户的限制。在移到生产环境中之前,应检查是否将用户帐户的选项设置为最高保护级别。如果要创建新的安全领域,则需要设置用户锁定选项。请参阅 WebLogic Server 中的密码保护方式和保护用户帐户。
使用安全策略保护 WebLogic 资源。创建安全策略是一个包含多个步骤的过程,其中包括多种选择。要全面理解这一过程,请阅读使用角色和策略确保 WebLogic 资源安全。该文档应与“使用角色和策略确保 WebLogic 安全”结合使用,才能确保 WebLogic Server 部署的安全得到全面配置。
配置WebLogic Server 的标识和信任(此步骤可选,但建议执行此步骤)。请参阅配置标识和信任。
启用 WebLogic Server 的 SSL(此步骤可选,但建议执行此步骤)。请参阅配置 SSL。
在移到生产环境中后,应查看并实现确保生产环境的安全中描述的其他安全选项。
另外,还可以:
配置安全的方法
本文档描述在多数情况下,如何使用 WebLogic Server 管理控制台配置 WebLogic 安全。通常,任何能够通过控制台完成的配置任务也可以使用 WebLogic 脚本工具或 Java 管理扩展 (JMX) API 来完成。有关使用 WLST 管理 WebLogic 安全的信息,请参阅 WebLogic 脚本工具中的安全管理。有关使用 JMX API 的信息,请参阅“使用 JMX 开发自定义管理实用工具”中的选择一个 MBean 服务器以管理安全领域。
在管理安全领域时,必须根据任务使用两个不同的 MBean 服务器:
要设置安全 MBean 特性的值,必须使用Edit MBean 服务器。
要添加用户、组、角色和策略或调用安全提供程序 MBean 中的其他操作,必须使用 Runtime MBean Server 或 Domain Runtime MBean Server。
此外,如果客户端或其他 JMX 客户端当前有活动的编辑会话,则不能调用安全提供程序 MBean 中的操作,以防止可能出现的不兼容更改。管理控制台会自动强制此限制并自动访问适当的 MBean 服务器。在使用控制台时,可以通过启用“域: 安全: 常规”页上的“如果进行了非动态更改,则允许安全管理操作”来替换此限制。将该特性设置为 True,允许用户无需重新启动服务器便可执行安全管理操作。请注意,当开始新的 MBean 编辑会话时,该特性将重置为 False。
例如,DefaultAuthenticatorMBean 中的 MinimumPasswordLength 特性的值存储在域的配置文档中。由于对该文档的所有修改都由 WebLogic Server 控制,因此要更改该特性的值,必须使用 Edit MBean 服务器并获取对域配置的锁定。DefaultAuthenticatorMBean 中的 createUser 操作将数据添加到 LDAP 服务器,它不受 WebLogic Server 控制。如果您或其他用户正在修改 MinimumPasswordLength 特性,则不能调用 createUser 操作,以防止 DefaultAuthenticatorMBean 的配置及其在 LDAP 服务器中使用的数据间出现不兼容的更改。此外,由于更改该特性需要重新启动 WebLogic Server,因此只有在重新启动服务器后才能调用 createUser 操作。
什么是兼容性安全?
兼容性安全是指能够在本版本的 WebLogic Server 中运行使用 WebLogic Server 6.x 开发的安全配置。在兼容性安全中,可以执行下列操作:管理 6.x 安全领域、用户、组和 ACL;保护用户帐户;配置领域适配器审核提供程序;选择配置领域适配器身份验证提供程序中的标识声明提供程序。
兼容性安全中唯一可用的安全领域是 CompatibilityRealm。兼容性领域中的领域适配器提供程序(审核、仲裁、授权和身份验证)允许与 6.x 安全领域中的身份验证、授权和审核服务之间实现向后兼容性。有关详细信息,请参阅使用兼容性安全。
| 注意: |
不赞成使用兼容性安全,未来的主要版本中也不支持兼容性安全。BEA 强烈建议升级 WebLogic Server 部署,以具备本版本的 WebLogic Server 中的安全功能。仅在要进行此类升级时才应使用兼容性安全。 |
兼容性安全中的可用管理任务
由于兼容性安全仅允许访问 WebLogic Server 6.x 中支持的身份验证、授权和自定义审核实现,因此,并非所有 6.x 安全任务都可以在兼容性安全中执行。使用兼容性安全可以:
| 注意: |
默认情况下,将使用 6.x 现有 config.xml 文件中的信息在 CompatibilityRealm 中配置领域适配器仲裁和授权提供程序。这些提供程序只能用于 CompatibilityRealm。领域适配器身份验证提供程序还可以在 CompatibilityRealm 中自动配置。但是,也可以在其他领域中配置此提供程序,以使其提供对 6.x 安全领域中存储的用户和组的访问。有关详细信息,请参阅配置 RDBMS 身份验证提供程序。 |
更改 system 用户保护 WebLogic Server 部署的密码。
管理 CompatibilityRealm 中的安全领域。
为 CompatibilityRealm 中的安全领域定义其他用户。通过在安全领域中实现组来进一步组织用户。
管理 WebLogic Server 部署中的资源的 ACL 和权限。
为添加到 CompatibilityRealm 中的 WebLogic 资源创建安全角色和安全策略。有关详细信息,请参阅使用角色和策略确保 WebLogic 资源安全。
仍然可以配置标识和信任、配置连接筛选器和启用域之间的互操作性;但是,将使用本版本的 WebLogic Server 中的可用安全功能执行这些任务。请参阅:
|