この情報は、セキュリティーを使用可能にした後でエラーが発生した場合に使用します。
セキュリティー関連の問題を診断および解決するための一般的なヒントについては、セキュリティー・コンポーネントのトラブルシューティングを参照してください。
IBM からのトラブルシューティングのヘルプ
の説明のとおり、IBM サポートが提供する資料およびツールを利用することによって、問題の解決に必要な情報収集の時間が節約できます。
問題報告書を開く前に、以下のサポート・ページを参照してください。
Web ページにアクセスする際の認証エラー
考えられる認証エラーの原因は、
以下のとおりです。
- ユーザー名またはパスワードが間違っている。 ユーザー名とパスワードを確認して、
それらが正しいことを確認してください。
- セキュリティー構成エラー: ユーザー・レジストリー・タイプが正しく設定されていない。管理コンソールで、管理セキュリティー設定のユーザー・レジストリー・プロパティーを確認してください。
ユーザー・レジストリー・プロパティーが目的のユーザー・レジストリーであることを確認してください。
- 内部プログラム・エラー。クライアント・アプリケーションが Java スタンドアロン・プログラムである場合、
このプログラムが、クレデンシャル情報を正しく収集していないか、正しく送信していない可能性があります。
ユーザー・レジストリー構成、
およびユーザー ID とパスワードが正しい場合は、WebSphere Application Server のトレースを使用して、
問題の原因を判別します。
セキュリティー・トレースを使用可能にするには
、com.ibm.ws.security.*=all=enabled トレース仕様を使用します。
Web ページにアクセスする際の認証エラー
リソースへのアクセス権を持つべきユーザーが、
それを持っていない場合は、構成時に何らかのステップをスキップした可能性があります。
管理の役割へのアクセスの許可
を参照してください。
具体的には、以下のようにします。
- アクセスしている Web リソースに対する必要な役割を確認する。
- 許可表をチェックして、ユーザーまたはユーザーが属するグループに、
必要な役割のいずれかが割り当てられていることを確認する。
- Web リソースに必要な役割を、その Web リソースのデプロイメント記述子に表示する。
- Web リソースを含むアプリケーションの許可表を、管理コンソールを使用して表示する。
- 必要な役割を付与されたユーザーを使用して、
そのユーザーが問題のリソースにアクセスできるかを確かめる。
- ユーザーが、必要な役割を 1 つ以上備えている必要がある場合は、
管理コンソールを使用して、そのユーザーを必要な役割に割り当て、アプリケーションを停止してから再始動する。
ユーザーに必要な役割が付与されているにもかかわらず、
セキュア・リソースにアクセスできない場合は
、com.ibm.ws.security.*=all=enabled をトレース仕様として使用して
、セキュリティー・トレースを使用可能にしてください。
トレース情報を収集して、さらに解決を図ってください。
クライアントとサーバーでコード・ページが違うと、
認証に失敗する
クライアントが
サーバーとは異なるコード・ページを使用し、基本認証時のユーザー ID と
パスワードに US-ASCII 以外の文字が使用されている場合は、ログインに
失敗します。HTTP ヘッダーに、エンコードされたデータの変換に必要な
エンコード方式情報が含まれていないため、サーバーには、その情報を正しくデコードする方法が
わかりません。
POST パラメーターに依存するログイン・フォームが HTML 本体テキストにあるので、
それを使用してください。このテキストのエンコードはブラウザーによって送信されるので、
正しくデコードすることができます。
注: Web サービス・カスタマーは、フォーム・ログインを使用してこの問題を
解決することはできません。ユーザーは、クライアントおよびサーバーのコード・ページに一貫性があることを
確認する必要があります。
エラー・メッセージ: CWSCJ0314E:
Current Java 2 security policy reported a potential violation on server
サーバー上で次のようなエラーが見つかる場合、
エラー・メッセージ: CWSCJ0314E: 現行の Java 2 セキュリティー・ポリシーが、
Java 2 セキュリティー許可違反の可能性があることを報告しました。
詳しくは、『問題判別ガイド』を参照してください。
{0}Permission/:{1}Code/:{2}{3}Stack Trace/:{4}Code Base Location/:{5}
Java セキュリティー・マネージャーの
checkPermission メソッドが、
SecurityException 例外を報告しました。
報告された例外は、
セキュア・システムにとって重大な場合があります。 セキュリティー・トレースをオンにして、
セキュリティー・ポリシーを違反した可能性のあるコードを判別してください。
違反コードが判別されたら、
該当するすべての Java 2 セキュリティー・ポリシー・ファイルおよびアプリケーション・コードを調べることによって、
試行した操作が Java 2 セキュリティーに関して許可されているかどうかを確認します。
RAS トレースをデバッグ・モードに構成するか、Java プロパティーを指定することによって、より詳細なレポートを使用できるようになります。
- Reliability Availability Serviceability (RAS) トレースをデバッグ・モードに構成する方法については、トレース使用可能化のセクションを参照するか、次のようにします。
- 管理コンソールの「汎用 JVM 引数」パネルから、
「アプリケーション・サーバー」>「server_name」>「
ProcessDefinition」>「Java 仮想マシン」パネルと選択して、次のプロパティーを指定します。
- java.security.debug ランタイム・フラグを追加します。
- 有効な値:
- access
- 必要な許可、コード、スタック、およびコード・ベースの場所など、
すべてのデバッグ情報を出力します。
- stack
- デバッグ情報 (必要なアクセス権、コード、スタックなど) を印刷します。
- failure
- デバッグ情報 (必要なアクセス権、コードなど) を印刷します。
Java セキュリティー・ポリシーを確認するには、http://java.sun.com/j2se/1.3/docs/guide/security/index.html にある Java 2 セキュリティー文書を参照してください。
ヒント: アプリケーションが JavaMail アプリケーション・プログラミング・インターフェース (API) を使用して実行されている場合、このメッセージは無害です。
installed Enterprise Application root/META-INF/was.policy ファイルを更新して、以下のアクセス権をアプリケーションに付与することができます。
- permission java.io.FilePermission "${user.home}${/}.mailcap",
"read";
- permission java.io.FilePermission "${user.home}${/}.mime.types",
"read";
- permission java.io.FilePermission "${java.home}${/}lib${/}mailcap",
"read";
- permission java.io.FilePermission "${java.home}${/}lib${/}mime.types",
"read";
アプリケーション・サーバーの始動時に、
「CWMSG0508E: The JMS Server security service was unable to
authenticate user ID:」というエラーが SystemOut.log に表示される
このエラーは、Java Message Service (JMS) API サンプルをインストールしてからセキュリティーを使用可能にすると発生することがあります。
対応する JMS サンプル資料の「構成と実行」ページの指示に従って、WebSphere Application Server セキュリティーで扱うサンプルを構成できます。
メッセージ駆動型 Bean のサンプルがインストールされているかどうかを調べるには、インストール・プログラムを起動し、「カスタム」を選択して、「Select the features you like to install」パネルで既にインストールされているコンポーネントを確認します。
JMS サンプルは、「Embedded Messaging」の下に「Message-Driven Bean Sample」として示されます。
このインストールは、管理コンソールを使用してサンプルを含むアプリケーション・サーバーのプロパティーを開くことでも確認することができます。
「MDBSamples」を選択して、
「アンインストール」をクリックしてください。
セキュリティーを使用可能にして
アプリケーション・サーバーを始動すると、「CWSCJ0237E: 1 つまたは複数の重要 LTPAServerObject 構成属性が
ヌルまたは利用不能です」というエラー・メッセージが表示される
このエラー・メッセージは、
認証メカニズムとして Lightweight Third Party Authentication (LTPA) を選択したのに LTPA 鍵を生成していない場合に表示されることがあります。
LTPA 鍵は LTPA トークンを暗号化します。
この問題を解決するには、以下を行います。
- 「セキュリティー」>「管理、アプリケーション、およびインフラストラクチャーの保護
」>「認証メカニズムおよび有効期限」>「LTPA」とクリックします。
- パスワード (何でもよい) を入力する。
- 「確認パスワード」に同じパスワードを入力する。
- 「適用」をクリックします。
- 「キーの生成」をクリックする。
- 「保管」をクリックします。
SystemOut.log に、AccessControlException 例外が報告される
この問題は
、WebSphere Application Server の Java 2 セキュリティー・フィーチャーに関連しています。
このフィーチャーは、WebSphere Application Server で実装された API レベルのセキュリティー・フレームワークです。
以下の例のような例外が表示されます。
このエラー・メッセージと番号は、変わる場合があります。
CWSRV0020E: [Servlet Error]-[validator]: Failed to load servlet:
java.security.AccessControlException: access denied
(java.io.FilePermission
app_server_root/systemApps/isclite.ear/isclite.war/WEB-INF/validation.xml read)
Java 2 セキュリティーの説明、
それを使用可能または使用不可にする方法および理由、Java 2 セキュリティーとポリシー・ファイルとの関係、
ならびにポリシー・ファイルを編集する方法については、インフォメーション・センター・ナビゲーションのトピック、Java 2 セキュリティー
を参照してください。
このトピックでは、Java 2 セキュリティーはこの製品で使用されるだけでなく、
開発者がそのビジネス・アプリケーションに実装することもできるということが説明されています。
WebSphere Application Server がホストするリソースに対してクライアントがアクセスしようとする際にこの例外が発生した場合は、
管理者に開発者の支援が必要になることがあります。
これらのエラーの原因としては、以下のことが考えられます。
- ポリシー・ファイル内の構文エラー。
- .rar ファイルにバンドルされた ra.xml ファイル内の許可指定の構文エラー。
このケースは、CICS またはその他のリソースへのコネクター・アクセスをサポートするリソース・アダプターに該当します。
- ポリシー・ファイル、または .rar ファイルにバンドルされた ra.xml ファイルで許可の指定が行われていない。
- クラスパスが正しく設定されていないため、Service Provider Programming Interface (SPI) 用の resource.xml ファイルに対する許可が正しく作成できない。
- アプリケーションによって呼び出されたライブラリー、またはそのアプリケーションに、
リソースへのアクセスをサポートする doPrivileged ブロックが欠落している。
- 誤ったポリシー・ファイルに許可が指定されている。
以下の方法で、これらの問題を解決します。
- すべての関連ポリシー・ファイルをチェックし、
例外に示された許可 (例えば java.io.FilePermission) が指定されていることを確認する。
- SystemOut.log ファイルで、
構文エラーの詳細を報告する関連 ParserException 例外を探す。
CWSCJ0189E: Caught ParserException while creating template for application policy
profile_root/config/cells/cell_name/nodes/node_name/app.policy
各部の意味は、次のとおりです。
- cell_name は、セルの名前を表します。
- profile_name は、プロファイルの名前を表します。
- node_name は、ノードの名前を表します。
例外は com.ibm.ws.security.util.ParserException です: 行番号 18: expected ';', found 'grant'
- 「CWSCJ0325W: The permission permission specified in the policy file is unresolved.」のようなメッセージを探します。
- 呼び出しスタックをチェックし、許可のないメソッドを判別する。このメソッドのクラスパスを確認します。
メソッドの確認が困難な場合は、「Java2 security Report」を使用可能にします。
- com.ibm.ws.security.core.*=all=enabled を指定するか、Java property.java.security.debug プロパティーを指定して
、RAS トレースを構成する。
java.security.debug プロパティーの有効値は次のとおりです。
- access
- 必要な許可、コード、スタック、およびコード・ベースの場所を含む、
すべてのデバッグ情報を出力します。
- stack
- デバッグ情報 (必要な許可、コード、スタックなど) を出力します。
- failure
- デバッグ情報 (必要な許可、コードなど) を出力します。
- レポートには、以下のことが示されています。
- Permission
- 欠落している許可。
- Code
- 問題が発生しているメソッド。
- Stack Trace
- アクセス違反が発生した場所。
- CodeBaseLocation
- 各スタック・フレームの詳細。
各部の意味は、次のとおりです。
- app1 は、アプリケーションの名前を表します。
- app_server_root は、WebSphere Application Server -
Express のインストール・ルート・ディレクトリーを表します。
- profile_root は、システムにおける特定のプロファイルのロケーションと名前を表します。
- profile1 または profile_name は、プロファイルの名前を表します。
- server1 または server_name は、アプリケーション・サーバーの名前を表します。
- メソッドが SPI の場合は、resources.xml ファイルをチェックして、
クラスパスが正しいことを確認します。
- すべてのポリシー・ファイルが正しくロードされていることを確認する、
または各クラスパスに付与されている許可を確認するには
、com.ibm.ws.security.policy.*=all=enabled でトレースを使用可能にします。
ロードされている許可は、すべて trace.log ファイルにリストされます。
app.policy、was.policy および ra.xml ファイルを検索してください。
クラスパスの許可リストを確認するには、Effective Policy for classpath を検索します。
ポリシー・ファイルまたは ra.xml ファイル内に構文エラーがある場合は
、ポリシー・ツールを使用して訂正します。
構文エラーが発生する可能性があるため、手動でポリシーを編集しないようにしてください。
- 「Unresolved」とリストされている許可は有効になりません。
指定した許可名が正しいことを確認してください。
- resource.xml ファイルで指定したクラスパスが正しくない場合は、訂正します。
- 必要な許可がポリシー・ファイルまたは ra.xml ファイルに存在しない場合は、
アプリケーション・コードを調べて、この許可を追加する必要があるかどうかを確認します。必要があれば、
適切なポリシー・ファイルまたは ra.xml ファイルに追加します。
- このリソースにアクセスする特定のメソッド以外に許可が付与されていない場合は
、doPrivileged ブロックを使用するようにコードを変更します。
- この許可がポリシー・ファイル内または ra.xml ファイル内に存在していて、許可が正しくロードされたにもかかわらず、クラスパスのリストに表示されていない場合は、
許可のロケーションが間違っている可能性があります。
インフォメーション・センター・ナビゲーションの Java 2 セキュリティー
をよく読み、どのポリシー・ファイルまたは ra.xml ファイルで許可を指定する必要があるかを
判別してください。
ヒント: アプリケーションが JavaMail API で実行されている場合は、
installed Enterprise Application root/META-INF/was.policy ファイルを更新して、アプリケーションに次の許可を付与することができます。
- permission java.io.FilePermission "${user.home}${/}.mailcap",
"read";
- permission java.io.FilePermission "${user.home}${/}.mime.types",
"read";
- permission java.io.FilePermission "${java.home}${/}lib${/}mailcap",
"read";
- permission java.io.FilePermission "${java.home}${/}lib${/}mime.types",
"read";
エラー・メッセージ:
「CWSCJ0336E: 続く例外 {1} により、ユーザー {0} に対して認証が失敗しました」
このエラー・メッセージは、示されたユーザー ID が LDAP ユーザー・レジストリーに見つからない場合に表示されます。
この問題を解決するには、以下を行います。
- ユーザー ID とパスワードが正しいことを確認します。
- そのユーザー ID がレジストリー内に存在することを確認します。
- 基本識別名 (DN) が正しいことを確認します。
- ユーザー・フィルターが正しいことを確認します。
- バインド DN と、そのバインド DN 用のパスワードが正しいことを確認します。
バインド DN とパスワードが指定されていない場合は、
欠落情報を追加して再試行してください。
- ホスト名と LDAP タイプが正しいことを確認します。
これでも問題が解決しない場合は、
ユーザー・レジストリーの管理者に連絡してください。
エラー・メッセージ: SECJ0352E:
次の例外 {1} によって、パターン {0} に一致するユーザーを
取得できませんでした
この認証失敗メッセージが表示されるのは、
外部のユーザー・アカウント・リポジトリーが破損しているか使用不可になっているために、
WebSphere Application Server がリポジトリー内のユーザー名を認証できない
場合です。通常は、認証エラー・メッセージに続いて、例えば次のように、
問題の本質的な原因すなわち根本原因を示す追加情報が表示されます。
パターンに一致するユーザーがレジストリーに存在することを確認してください。問題が続く場合は、サービス担当者に連絡してください。
ユーザー・アカウント・リポジトリーが
破損している場合、またはユーザーが WebSphere Application Server と外部ユーザー・アカウント・リポジトリー間の
接続を切断した場合は、この追加情報では明確なユーザー処置が提供されないことがあります。
外部ユーザー・アカウント・リポジトリー (ここではリポジトリーと
呼びます) は、Lightweight Directory Access Protocol (LDAP) 製品などです。
この問題を解決するには、リポジトリーを再インストールして、接続テストを行って
インストールが正常に行われたことを確認する必要があります。
注意:
WebSphere Application Server に関連するすべての構成設定が正しいことを確認した場合にのみ、
次のステップに進んでください。
問題を解決するには
以下のステップに従います。
- リポジトリーと WebSphere Application Server の両方を再始動します。
- リポジトリーへの接続をテストします。それでも接続に失敗する場合は、
リポジトリーの再インストールが必要かもしれません。
- リポジトリーに関する診断が出る場合は、リポジトリーを再インストールしなくてもよいように、
それを実行してみてください。
重要: それでも問題が
解決しない場合は、リポジトリーを再インストールする必要があるかもしれません。先に進む前に、
構成済みのすべてのユーザーおよびグループの完全なリストを生成してください。
再インストール後は、これらのフィールドを再設定する必要があります。
- 必要に応じて、破損したリポジトリーを再インストールします。
- ユーザーおよびグループを、リストから新しくインストールしたリポジトリーに
取り込みます。
- リポジトリーと WebSphere Application Server の両方を再始動します。
- 管理コンソールで、「セキュリティー」 > 「セキュア管理、アプリケーション、およびインフラストラクチャー」とナビゲートし、該当するユーザー・アカウント・リポジトリーを選択します。
例えば、スタンドアロンの Lightweight Directory Access Protocol リポジトリーを
使用する場合は「スタンドアロン LDAP レジストリー」を選択します。
- 「テスト接続」をクリックして、WebSphere Application Server がリポジトリーに
接続できることを確認します。
プロファイル管理ツールを使用して新規プロファイルを作成すると、
鍵の生成エラーが発生する
プロファイル管理ツールまたは
コマンド行の manageprofiles ユーティリティーを使用して新規プロファイルを作成すると、
部分的な成功あるいは失敗を示すエラー・メッセージが表示されます。
このエラー・メッセージは install_dir/logs/manageprofiles/profile_name_create.log
ファイルにあり、generateKeysforSingleProfile タスクまたは generateKeysForCellProfile タスクの
エラーを指している可能性があります。
プロファイル作成ツールや
manageprofiles ユーティリティーは、複数のタスクを呼び出します。generateKeysForSingleProfile タスクが
呼び出されるのは、スタンドアロンのアプリケーション・サーバーまたはデプロイメント・マネージャーのプロファイルを
作成する場合です。generateKeysForCellProfile タスクが呼び出されるのは、セル・プロファイルを
作成する場合です。どちらのタスクも、wsadmin コマンドを呼び出す
最初のタスクです。どちらかのタスクでログにエラーが記録されても、
そのエラーは実際には wsadmin コマンドの失敗が原因であり、セキュリティー・タスクのエラーではない
場合があります。
この問題の実際の原因を突き止めるには、
以下のログ・ファイルの情報を確認します。
- install_dir/logs/manageprofiles/profile_name_create.log ファイル (障害の
エラー・コードがわかります)
- install_dir/logs/manageprofiles/profile_name/keyGeneration.log ファイル
- install_dir/logs/manageprofiles/profile_name/wsadminListener.log ファイル