セキュアな環境で WebSphere Application Server アプリケーションにアクセスするために、ユーザーは、WebSphere Application Server によって認証する必要のある ID を使用して識別されます。
異なるタイプの ID の理解: WebSphere Application Server は、ユーザー ID を認証し、
Java Authentication and Authorization Service (JAAS) サブジェクトを使用してユーザーを表します。サブジェクトには、1 つ以上のプリンシパルが含まれています
(このプリンシパルは、認証済みユーザー ID のテクノロジー依存の表記です)。
詳細は以下のとおりです。
- ユーザー ID
- J2EE ID
- WebSphere によって認証されるユーザー ID であり、
Java 2 Platform, Enterprise Edition (J2EE) ランタイム (J2EE アプリケーション要求に関連付けられ、
EJB メソッド許可のアクセス制御の決定に使用されるユーザー ID など) での WebSphere Application Server によるアクセス制御の決定のために使用されます。
- オペレーティング・システム (OS) ID
- 基盤となるオペレーティング・システムによって認証されるユーザー ID であり、
OS およびそのサブシステム (SAF STARTED クラス機能によって WebSphere Application Server for z/OS サーバントに関連付けられ、
サーバーによるファイルへのアクセス試行時に、
アクセス制御の決定のためにファイル・システムによって使用されるユーザー ID など) によるアクセス制御の決定のために使用されます。
- スレッド ID
- Java スレッド ID
- WebSphere J2EE ランタイムによって管理される Java スレッドに現在
関連付けられている J2EE ID (Java スレッドはスレッドの Java 仮想マシン (JVM) の表記です)。
Java スレッド ID は、オペレーティング・システム (OS) スレッドに関連付けられていますが、
JVM は、スレッドの Java 表記上のユーザー ID を管理します (オペレーティング・システムのスレッド上でオペレーティング・システムが管理するユーザー ID とは別です)。
J2EE ID は、特定のアプリケーション要求の存続期間中、Java スレッド上でアクティブとなります。
- OS スレッド ID
- オペレーティング・システムのスレッドに現在関連付けられているオペレーティング・システム ID。
OS スレッド ID は一般にサーバントに割り当てられているユーザー ID であり、通常は Java スレッド ID と同一ではありません。
J2EE は、サーバントに割り当てられた OS スレッド ID に一致する J2EE ID を保守するということに注意してください。
この J2EE ID は、RunAs ID として使用できます。
- RunAs ID
- 特定の J2EE アプリケーション要求に対する Java スレッド ID として選択される J2EE ID
(J2EE アプリケーション要求内で呼び出される Enterprise JavaBeans (EJB) 上の RunAs デプロイメント記述子ポリシーに基づく)。
J2EE ID は通常、J2EE アプリケーション要求を行った認証済みユーザーの ID です。
WebSphere Application Server RunAs ポリシーにより、
現行要求への Java スレッド ID の割り当てに以下の 3 つの選択肢が得られます。
- クライアント (例えば、ユーザー) J2EE ID の割り当て - 「呼び出し元」の RunAs の選択ともといいます
- サーバーの J2EE ID の割り当て
- 指定された役割にある J2EE ID の割り当て
セキュリティーが使用可能である場合、
J2EE コンポーネントを呼び出す WebSphere Application Server for z/OS の各要求は、
認証されて、許可ユーザーが要求アクセスであることを確認します。
ユーザーは、J2EE ID (JAAS サブジェクトとも呼ばれる) によって表されます。
この J2EE ID には、1 つ以上のプリンシパルが含まれ、
それぞれのプリンシパルは特定のユーザー ID に対応します。
この関連付けは、WebSphere Application Server によって管理されます。
J2EE ID およびオペレーティング・システム OS スレッド ID は、
同一の名前を持ち、同一のユーザーを表すため、
互いに関連付けられます。
WebSphere Application Server for z/OS は、
使用可能なサーバント・プロセスの 1 つにコンポーネント要求をディスパッチします。
サーバント・プロセス内で、
コンポーネント要求は、Java スレッド上にディスパッチされます。
続いて、Java スレッドは、
JVM によって z/OS スレッド制御ブロック (TCB) に内部的にマップされます。
TCB は、1 つのオペレーティング・システムのスレッドであり、
ネイティブ・プロセス・インフラストラクチャーの一部であると考えられます。
サーバント・プロセスは、開始時に OS ID を割り当てられます。
z/OS セキュリティー・ポリシーは、
SAF STARTED クラス機能を使用して ID を割り当てます。
役割許可と許可検査を含む J2EE 許可決定は、J2EE ID を使用して判別されます。
構成設定により、役割許可の検査は、使用しているオペレーティング・システムのセキュリティー・マネージャー (System Authorization Facility (SAF) など) に代行させることができます。
この場合、関連付けられたオペレーティング・システム OS の ID が役割許可の決定に使用されます。
z/OS 上の一部のリソース・マネージャーは、
OS スレッド ID を使用して許可決定を行います。
例えば、ファイルがアクセスされると、
現在 TCB 上にある OS スレッド ID に完全に基づいて、
ファイル・システムのアクセス制御が判別されます。
同様に、DB2 for z/OS へのローカル Java Database Connectivity (JDBC) 接続は、
特定の構成下では TCB OS スレッド ID を許可 ID として使用します。
WebSphere Application Server for z/OS 接続管理によって管理される Java Message Service (JMS)、JDBC、
または J2EE コネクター・アーキテクチャー (JCA) コネクターを介してアプリケーションがアクセスする DB2 for z/OS (ファイル・システムとは異なる) などの OS スレッド ID を使用するリソース・マネージャーの場合、
これらの z/OS リソース・マネージャーへのコネクターは、
「オペレーティング・システムのスレッド・セキュリティーを使用する」ということに注意する必要があります。