[z/OS]

Java 线程标识和操作系统线程标识

您可以指定选项以使 Java™ 线程标识与操作系统线程标识同步。

Enterprise JavaBeans (EJB) 支持指定方法级 RunAs 角色,该角色用于使 Java Platform, Enterprise Edition (Java EE) 角色与 EJB 方法调用相关联。EJB 方法使用与所指定的安全角色相关联的权限来运行。通过使用用户身份将权限映射至所指定的角色。通常,基于 Web 的运行时和 Java EE 运行时识别此标识,并且此标识与当前分派线程相关联。此标识只管理对那些遵从 Java EE 安全性的资源和设施主体集的访问权。实际的操作系统线程标识不受 EJB RunAs 角色选择的影响,并且通常是服务器的标识。

设置操作系统身份线程将使 Java EE 角色身份与操作系统线程同步 (SyncToOSThread)。这意味着,操作系统线程身份在 EJB 方法调用期间与 Java EE 角色身份相关联(应用程序组装者和部署者通过对特定 Bean 方法将线程身份设置为 RunAs 身份使 RunAs 身份与操作系统线程相关联)。此关联意味着,将调用者或安全角色标识(而不是服务器区域标识)用于 z/OS® 系统服务请求(例如对文件和数据库管理系统的访问)。可以配置 WebSphere® Application Server for z/OS Java EE 服务器以启用或禁用此关联(或同步)。不管已安装应用程序的部署描述符中从操作系统线程标识到运行时标识的设置如何,缺省设置都会禁用修改操作系统线程上标识的能力。如果应用程序安装程序不能启用同步,那么任何将 RunAs 标识设置为操作系统线程的方法都将失败,并发生 no_permission 错误。

要完成指定选项以使 Java 线程标识与操作系统线程标识同步这一工作,请使用资源访问控制工具 (RACF®) 为“允许与操作系统线程同步”定义 FACILITY 以及可选的 SURROGAT 类概要文件。这使 WebSphere Application Server 配置中的 RACF 管理员能够控制用于允许 Java EE 角色标识与 OS 线程同步 (SyncToOSThread) 的许可权。

通过使用管理控制台,可以在“z/OS 安全性选项”面板上指定下列线程标识同步选项:
启用 WebSphere Application Server 与 z/OS 线程标识同步
指定是否允许应用程序 SynchToOSThread。正如 EJB 和 Web 应用程序 SyncToOSThread 规范指示的那样,选择此安全性选项(即指定为 true)后,将使用应用程序指定的 SyncToOSThread,然后 EJB 和 Web 容器会执行 SyncToOSThread。缺省值为 false,即禁用。
启用连接管理器 RunAs 线程身份
指定在从指定了 res-auth=container 的资源引用中获取连接时,连接管理器是否使当前 Java EE 主体与操作系统线程同步。缺省值为 false,即禁用。
您还可以使用 Enterprise JavaBeans (EJB) 的方法级扩展部署描述符 (XDD) 来选择 SyncToOSThread 支持。使用通过 EJB 或 Web 应用程序标准部署描述符定义的特有环境条目来启用此支持。在组装或部署期间,通过指定以下内容将值与该变量绑定:
  • True,指定对于对 EJB 或 Web 应用程序调用的所有请求,Java EE 主体或身份应该与操作系统线程同步。
  • False,指定对于对 EJB 或 Web 应用程序调用的所有请求,Java EE 主体应用程序或身份不应该与操作系统线程同步。此值是缺省值。
处理请求时,Web 容器了解需要什么角色(如果有的话)来访问由输入 URL 表示的组件。该容器将验证请求者认证以及已经为已认证的用户授予了所需角色的许可权。Web 容器使用与 EJB 容器相同的基于系统授权工具 (SAF) 的用户注册表和 EJB 角色概要文件来执行此验证。因此,您可使用与用于企业 Bean 和 Java EE 服务相同的用户注册表和角色概要文件来管理 Web 应用程序。对于设置线程标识,可能的活动用户注册表包括:
  • 本地操作系统
  • LDAP
  • 定制
修改线程标识值的应用程序事件包括:
初始值(当设置第一种方法时)
缺省情况下,除非策略属性的“运行方式”字段另有指定,否则 Servlet 服务方法和 EJB 业务方法的调用隐式地作为调用者运行 (RunAsCaller)。EJB 客户机应用程序总是作为服务器 (RunAsServer) 运行。
注: 对于 Web 应用程序,如果未指定安全性约束,那么应用程序可能使用未经认证的用户标识来运行。
将方法委派更改为 Java EE 标识(指定了 RunAs)
从具有容器管理的资源授权 (res-auth=container) 的资源引用获取应用程序时, 连接管理器使当前 Java EE 标识与操作系统线程同步。标有 SynchToOSThread 的 EJB 方法将导致 Java EE 角色标识与操作系统线程同步。
WSSubject.doAs()
此设置提供了当主体集与线程上的远程调用关联时,无需执行 WSSubject.doAs() 将主体集与远程操作关联的灵活性。
在以下情况中线程标识将在服务器上被暂时复位:
JavaServer Pages (JSP) 编译
如果已对服务器启用 SyncToOSThread (security_EnableSyncToOSThread=1),那么 Web 容器 JSP 编译将修改服务器的标识。
有状态的后备存储器的访问
如果已启用 SyncToOSThread,那么 EJB 容器有状态会话激活将更改服务器的身份。始终使用服务器的身份来访问 EJB 有状态会话后备存储器。
重新装入 Web 应用程序
当 Web 容器重新装入 Web 应用程序时,如果已对 Web 应用程序启用 SyncToOSThread,那么 Web 容器将更改服务器身份。
连接管理器请求
当资源引用指定 res-auth=application 时,线程身份将被暂时设置为服务器的身份。
注: 在启用管理安全性的情况下运行时,建议启用 Java 2 安全性。启用此支持时要特别小心,因为它可使一般 z/OS 系统资源(如文件和套接字)脱离 WebSphere Application Server 运行时的控制,并且可使通过 Java EE 应用程序建立的标识可以访问这些系统资源的管理功能。

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



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