スケジューラー・サービスは、その実行時に、非同期 Bean の始動据え置きメカニズムを使用して、J2EE サービス・コンテキスト情報をタスクに伝搬します。
WebSphere Application Server に組み込まれている
管理セキュリティー・メカニズムの JAAS セキュリティー・コンテキストを使用して
アプリケーションを保護する場合は、正しいクレデンシャルを使用してそのスレッドで各タスクを作成します。
各タスクは以下の方法によって特定のセキュリティー・クレデンシャルを使用し
て実行されます。
- タスク作成時にスレッドで Java Authentication and Authorization Service (JAAS) セキュリティー・コンテキストを使用する。
インフォメーション・センターの非同期 Bean セクションにあるトピック、始動据え置きおよびセキュリティーを参照してください。
- TaskInfo オブジェクトの setAuthenticationAlias メソッドを使用する。
- BeanTaskInfo タスクの TaskHandler EJB メソッドの指定のセキュリティー ID を使用する。
スケジューラー・サービスは、その実行時に非同期 Bean の始動据え置きメカニズムを利用して、J2EE サービス・コンテキスト情報をタスクに伝搬します。
伝搬されるサービス・コンテキスト情報の量は、スケジューラーが参照する WorkManager 構成オブジェクトのサービス・コンテキストの設定値によって制御されます。
例えば、セキュリティーおよび国際化対応サービス・コンテキストを使用可能にできます。
アプリケーション・サーバーを構成して、これらのサービス・コンテキストを伝搬する方法について詳しくは、非同期 Bean の使用を参照してください。
Java Authentication and Authorization Service セキュリティー・コンテキスト
WebSphere Application Server に組み込まれている
管理セキュリティー・メカニズムの JAAS セキュリティー・コンテキストを
使用してアプリケーションを保護する場合は、正しいクレデンシャルを使用してそのスレッドで各タスクを作成します。
タスクに正しいクレデンシャルがあると、
管理セキュリティーを使用不可にしてから再び使用可能にしても、セキュリティーの問題は生じません。
スケジューラー・タスクの作成時にセキュリティー・コンテキストを設定せず、
後でターゲット・アプリケーションでセキュリティーを使用可能にすると、
セキュリティー例外または SECJ0053E などのエラー・メッセージが表示されることがあります。異なるサーバー上の
複数のスケジューラーが同じテーブルにアクセスし (クラスター化されたスケジューラーまたは冗長
スケジューラー)、セキュリティー設定が異なっている場合にも、このエラーが表示されることがあります。
以下のいずれかの条件に該当する場合は、JAAS セキュリティー・コンテキストは設定されません。
- 管理セキュリティー が使用不可になっている。
- 関連付けられているスケジューラー構成用に構成されている WorkManager で、
セキュリティー・コンテキスト・ポリシーが使用不可になっている。
- クレデンシャルがスレッドに設定されていない。 例えば、
スケジュールされたタスクを作成するために使用される Enterprise Bean またはサーブレットが保護されていないか、
またはタスクが WASScheduler MBean を使用して作成されました。
タスクの作成時に、上記の条件のいずれかに該当しており、
アプリケーション・サーバーまたはアプリケーションでセキュリティーを使用可能にする必要がある場合、
各タスクに対して以下のステップを実行する必要があります。
- Scheduler API の find メソッドまたは get メソッドを使用してタスクを検索する。
- Scheduler.cancel () API を使用して、タスクを取り消す。
- セキュリティーを使用可能にして、Scheduler.create() メソッドを使用してタスクを再作成する。
find メソッドまたは get メソッドを使用してスケジューラーから検索されたタスクを実行依頼すると、新規タスク ID が自動的に生成されます。
セキュリティー順序の優先順位
前述したように、タスクが正しいユーザー・クレデンシャルで実行されるか検証する方法は 3 つあります。
さらに、各 TaskInfo インプリメンテーションにはユーザー情報を提供する独自の方法があり、それは標準のメカニズムをオーバーライドできます。
複数のメソッドが使用される場合は、以下のリストを参照してどのセキュリティー・メカニズムを採用するかを決定します。
BeanTaskInfo
- EJB の process() メソッド上に設定された TaskHandler セキュリティー ID
- TaskInfo インターフェース上の setAuthenticationAlias メソッドを使用して設定された認証エイリアス
- JAAS セキュリティー・コンテキスト
MessageTaskInfo
- TaskInfo インターフェース上の setAuthenticationAlias メソッドを使用して設定された認証エイリアス
- MessageTaskInfo インターフェース上の setUsername メソッドと setPassword メソッド
詳しくは、非推奨のフィーチャーのリストを参照してください。