[z/OS]

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) の同期の許可を制御できます。

管理コンソールを使用して、z/OS セキュリティー・オプション・パネルで、以下に示した、スレッド ID の同期化に使用するオプションを指定できます。
WebSphere Application Server および z/OS のスレッド ID の同期化を使用可能にするオプション
アプリケーション SynchToOSThread が許可されているかどうかを指定します。このセキュリティー・オプションが選択 (つまり、true が指定) されると、 EJB および Web アプリケーション SyncToOSThread 仕様が示すとおり、 アプリケーション指定の SyncToOSThread が採用されて EJB および Web コンテナーによって実行されます。 デフォルトは、false または使用不可です。
接続マネージャー RunAs スレッド ID を使用可能にするオプション
接続が res-auth=container を指定するリソース参照から取得される場合、 接続マネージャーが現行の Java EE プリンシパルを OS スレッドに同期化するかどうかを指定します。デフォルトは、false または使用不可です。
Enterprise JavaBeans (EJB) のメソッド・レベルの拡張デプロイメント記述子 (XDD) を使用して SyncToOSThread サポートを選択することもできます。EJB または Web アプリケーション標準デプロイメント記述子で定義される、 識別された環境エントリーを使用して、このサポートを使用可能にします。アセンブリーまたはデプロイメント中に、次のように指定して、値をこの変数にバインドします。
  • True を指定する場合、Java EE プリンシパルまたは ID を、EJB または Web アプリケーションで呼び出されるすべての要求の OS スレッドと同期化する必要があります。
  • False を指定する場合、Java EE プリンシパル・アプリケーション または ID を、EJB または Web アプリケーションで呼び出される、どの要求の OS スレッドとも同期化する必要はありません。 この値がデフォルトです。
要求を処理すると、Web コンテナーは入力 URL によって表されるコンポーネントにアクセスするのに必要なロールを (あれば) 理解します。このコンテナーは、 要求側の認証を検証し、認証済みユーザーに必要なロールに対する許可が与えられているかを検証します。この Web コンテナーは、この検証を実行するために、同じ System Authorization Facility (SAF) ベースのユーザー・レジストリーおよび EJB ロール・プロファイルを EJB コンテナーとして使用します。 このため、エンタープライズ Bean および Java EE サービスに使用するものと同じユーザー・レジストリーと ロール・プロファイルを、Web アプリケーションの管理に使用できます。スレッド ID を設定する場合は、 考えられるアクティブ・ユーザー・レジストリーは以下のものを含みます。
  • Local OS
  • LDAP
  • カスタム
スレッド ID 値を変更するアプリケーション・イベントは以下のものを含みます。
最初のメソッドが設定されたときの初期値
デフォルトでは、サーブレット・サービス・メソッドおよび 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() を実行する必要なく、スレッド上のリモート呼び出しにサブジェクトを関連付ける際に柔軟性を与えます。
スレッド ID は、次の状態のときに一時的にサーバーでリセットされます。
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 に設定されます。
注: 管理セキュリティー を使用可能にして実行する場合は、Java 2 セキュリティーを使用可能にすることを推奨します。このサポートを使用可能にする場合は、注意が必要です。その理由は、汎用の z/OS システム・リソース (ファイルやソケットなど) が、WebSphere Application Server ランタイムによって制御できなくなり、また、これらのシステム・リソース管理で Java EE アプリケーションを介して確立された ID でアクセスできるようになる可能性があるからです。

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=csec_threadidentzos
ファイル名:csec_threadidentzos.html