![[z/OS]](../images/ngzos.gif)
Java スレッド ID とオペレーティング・システム・スレッド ID
オプションを指定して、Java™ スレッド ID とオペレーティング・システム・スレッド ID を同期することができます。
Enterprise JavaBeans (EJB) は、Java Platform, Enterprise Edition (Java EE) ロールを EJB メソッド呼び出しと関連付ける、メソッド・レベルの RunAs ロールの指定をサポートします。EJB メソッドは、指定されたセキュリティー・ロールと関連する権限を使用して実行します。 権限は、ユーザー ID を使用して指定されたロールにマップされます。 通常、この ID は Web ベースおよび Java EE のランタイムで認識され、 現行のディスパッチ・スレッドに関連付けられます。この ID は、 Java EE セキュリティーの対象となるリソースおよび機能へのアクセスのみを管理します。実際の OS スレッド ID は、 EJB RunAs ロール選択から影響を受けることはなく、通常、サーバーの ID です。
OS ID スレッドを設定すると、Java EE ロール ID と OS スレッド (SyncToOSThread) が同期化されます。これは、OS スレッド ID が EJB メソッド呼び出しの間に Java EE ロール ID と関連付けられることを意味しています (アプリケーション・アセンブラーおよびデプロイヤーは、特定の Bean メソッド の RunAs ID にスレッド ID を設定することによって、RunAs ID をオペレーティング・システム・スレッドと関連付けます)。 この関連とは、(サーバー領域識別ではなく) 呼び出し元またはセキュリティー・ロール ID が、 ファイルおよびデータベース管理システムへのアクセスなどの、z/OS® システム・サービス要求に使用されるということです。 WebSphere® Application Server for z/OS Java EE サーバーは、この関連 (または同期) が使用可能または使用不可になるように構成できます。 デフォルトの設定では、インストール済みアプリケーションのデプロイメント記述子で設定されている RunAs ID に対する OS スレッド ID に関係なく、オペレーティング・システム・スレッドで ID を変更する機能を使用不可にします。 アプリケーション・インストーラーが同期化を使用不可にしている場合は、 オペレーティング・システム・スレッドに RunAs ID を設定するメソッドはすべて no_permission エラーで失敗します。
Resource Access Control Facility (RACF®) を使用して、 「Sync to OS Thread Allowed」の FACILITY クラス・プロファイル、およびオプションで SURROGAT クラス・プロファイルを定義することにより、 オプションを指定して、Java スレッド ID とオペレーティング・システム・スレッド ID を同期します。これにより、WebSphere Application Server 構成の RACF 管理者が、Java EE ロール ID と OS スレッド (SyncToOSThread) の同期の許可を制御できます。
- WebSphere Application Server および z/OS のスレッド ID の同期化を使用可能にするオプション
- アプリケーション SynchToOSThread が許可されているかどうかを指定します。このセキュリティー・オプションが選択 (つまり、true が指定) されると、 EJB および Web アプリケーション SyncToOSThread 仕様が示すとおり、 アプリケーション指定の SyncToOSThread が採用されて EJB および Web コンテナーによって実行されます。 デフォルトは、false または使用不可です。
- 接続マネージャー RunAs スレッド ID を使用可能にするオプション
- 接続が res-auth=container を指定するリソース参照から取得される場合、 接続マネージャーが現行の Java EE プリンシパルを OS スレッドに同期化するかどうかを指定します。デフォルトは、false または使用不可です。
- True を指定する場合、Java EE プリンシパルまたは ID を、EJB または Web アプリケーションで呼び出されるすべての要求の OS スレッドと同期化する必要があります。
- False を指定する場合、Java EE プリンシパル・アプリケーション または ID を、EJB または Web アプリケーションで呼び出される、どの要求の OS スレッドとも同期化する必要はありません。 この値がデフォルトです。
- Local OS
- LDAP
- カスタム
- 最初のメソッドが設定されたときの初期値
- デフォルトでは、サーブレット・サービス・メソッドおよび EJB ビジネス・メソッドの呼び出しは、ポリシーの属性の「Run as」フィールドに他の設定が指定されていない限り、暗黙的に呼び出し元として実行されます (RunAsCaller)。EJB クライアント・アプリケーションは、
常にサーバーとして実行されます (RunAsServer)。注: Web アプリケーションの場合、セキュリティー制約が指定されていないと、アプリケーションは、非認証ユーザー ID で実行されることがあります。
- メソッド委任の Java EE ID への変更 (RunAs Specified)
- 接続マネージャーは、コンテナー管理リソース許可 (res-auth=container) が指定されたリソース参照から アプリケーションを取得する際に、OS スレッドと現行 Java EE ID を同期化します。 SynchToOSThread でマークされた EJB メソッドによって、Java EE ロール ID を OS スレッドに同期化します。
- WSSubject.doAs()
- この設定によって、サブジェクトをリモート・アクションに関連付けるのに WSSubject.doAs() を実行する必要なく、スレッド上のリモート呼び出しにサブジェクトを関連付ける際に柔軟性を与えます。
- JavaServer Pages (JSP) コンパイル
- Web コンテナー JSP コンパイルは、SyncToOSThread がサーバーに使用可能な場合 (security_EnableSyncToOSThread=1)、サーバーの ID を変更します。
- ステートフル補助記憶装置のアクセス
- EJB コンテナー・ステートフル・セッションの活動化は、SyncToOSThread が使用可能な場合、サーバーの ID を変更します。常にサーバーの ID を使用して EJB ステートフル・セッション補助記憶装置にアクセスします。
- Web アプリケーションの再ロード
- Web コンテナーが Web アプリケーションを再ロードすると、SyncToOSThread が Web アプリケーションに使用可能な場合、サーバー ID を変更します。
- 接続マネージャーの要求
- リソース参照が res-auth=application を指定すると、 スレッド ID は一時的にサーバーの ID に設定されます。