BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Server FAQ 集

 Previous Next Contents PDF で侮ヲ  

FAQ: セキュリティ

Q. 互換性レルムと myrealm との違いは何ですか。各々のレルムはどういう環境下で使用すべきですか。

A. 6.x の config.xml ファイルを持っていて、WebLogic Server 7.0 を起動する場合には、以下のレルムが生成されます。

詳細については、『WebLogic Security の管理』を参照してください。

Q. デフォルト グループ users および everyone は何のためのものですか。

A. userseveryone は、グローバル ロールとセキュリティ ポリシーを適用する場合に便利なグループです。すべての WebLogic Server ユーザは everyone グループのメンバーです。<anonymous> ユーザでない WebLogic Server ユーザだけが users グループのメンバーになります。

詳細については、『WebLogic Security の管理』を参照してください。

Q. ゲスト ユーザはまだありますか。

A. guest ユーザは WebLogic Server 7.0 のデフォルトではサポートされていません。WebLogic Server バージョン 6.x では、guest はユーザの名前と匿名ログイン用の名前の両方でした。匿名ユーザ用の新しいユーザ名は <anonymous> です。WebLogic Server を下記のコマンドライン引数で起動すると、このユーザ名を変更できます。

-Dweblogic.security.anonymousUserName=newAnonymousUserName

この引数を使うと、下位互換性の目的のため、匿名ユーザの名前を guest にすることができます。

WebLogic Server 7.0 で、guest ユーザを用意したい場合には、デフォルト セキュリティ レルムの認証プロバイダにおいて名前 guest でユーザを作成し、そのユーザに guest のパスワードを付与します。コードが guest ユーザに依存する場合には、weblogic.security.WLSPrincipals のユーティリティ メソッドを利用するようにコードを書き直すことを検討したほうがよいでしょう。

Q. Web アプリケーションの中でフォーム ベースの認証用に追加フィールドを提供したいのです。どんなアプリケーション プログラミング インタフェース (API) を使用すべきでしょうか。

A. WebLogic 認証プロバイダの CallbackHandler 実装は、フォーム ベースの認証を使用する場合には文字列フィールド バージョンのユーザ名とパスワードのみをサポートしています。

Web アプリケーションで他の認証情報が必要な場合には、LoginModule のコード内で JAAS Callback API の javax.security.auth.TextInputCallback インタフェースを使用してください。javax.security.auth.TextInputCallback インタフェースの実装には、メソッド コンストラクタへのプロンプトとして、認証フィールドの名前を使う必要があります。 次に例を示します。

Callback[] callbacks=new Callback[1];
callbacks[1]=new TextInputCallback("TextField");

try{
callbackHandler.handle(callbacks)
textField1=((TextInputCallback)callbacks[2].getText
} catch (java.io.IOException ioe) {
throw new LoginException(ioe.toString());
}catch (UnsupportedCallbackException uce) {
throw new LoginException
("Error:"+uce.getCallback().toString() +
"not available to garner authentication information" +
"from the user");
}
//"textField1 が正しく設定されていない

ServletCallbackHandlerTextInputCallback を取得すると、コールバックは TextInputCallback のプロンプトに一致するフィールドを探します。一致するものがあった場合、コールバック ハンドラはその値をコールバックの中に設定します。一致するものが見つからなかった場合には、UnsupportedCallback 例外が送出されます。

Q. アプリケーションの中で 6.x のセキュリティ レルム API を使用しています。この機能を WebLogic Server バージョン 7.0 のセキュリティ アーキテクチャにアップグレードするにはどうすればよいですか。

特に、security.getRealm() メソッドを使用していて、返されたレルムで getGroup()getGroups()、および getUser() メソッドを使用しています。

A. 互換性セキュリティを使うと、WebLogic Server 7.0 環境で 6.x のアプリケーションをそのまま使えます。

WebLogic Server の管理は、6.0 においてレルムの直接呼び出しから MBean の利用へと大きく変更されました。この変更は、WebLogic Server にとって統一された管理モデルを作成する際の最初のステップでした。6.0 で導入されたセキュリティ MBean はレルム用に定義された機能を正確に反映していましたが、セキュリティ ベンダが独自の製品と WebLogic Server とを統合するのには、柔軟性が不十分でした。WebLogic Server 7.0 では Security Service Provider Interface (SSPI) と Security SPI MBean のセットが提供されていて、これらを使うと、WebLogic Server 用のカスタム セキュリティ製品を記述することができます。これらの MBean は、アプリケーションを WebLogic Server 7.0 環境で使えるようにする目的で既存のアプリケーションの機能を複製するためにも使えます。

レルムのアップグレードを選択する場合、weblogic.management.security パッケージ内にある MBean の実装を記述することが必要となります。これらの MBean では、6.x のレルムに特化した管理メソッドを実装できます。weblogic.management.security パッケージ内の MBean の使い方については、『WebLogic Security サービスの開発』を参照してください。

下記は、セキュリティ レルムに基づいたアプリケーションを WebLogic Server 7.0 で利用可能なセキュリティ アーキテクチャへアップグレードする際に役立つヒントです。

注意: weblogic.security.acl パッケージは WebLogic Server 7.0 では非推奨です。


 

表19-1 インタフェース マッピング

6.x weblogic.security.acl パッケージのメソッド

対応する 7.0 weblogic.management.security.
authentication パッケージのメソッド

newUser()

UserEditor.createUser()

deleteUser()

UserRemover.removeUser()

newGroup()

GroupEditor.createGroup()

deleteGroup()

GroupRemover.removeGroup()

Group.addMember()

GroupEditor.addMemberToGroup

Group.removeMember()

GroupEditor.removeMemberFromGroup()

Group.isMember()

GroupMemberLister.listGroupMembers() または SubjectUtils.isUserInGroup()

Group.members()

GroupMemberList.listGroupMembers()

userExists()

UserReader.isUser()

isGroupMember()

GroupReader.groupExists()GroupReader.isMember()


 

Q. WebLogic Serverでは、Diffie-Hellman または DSS/DSA のデジタル証明書がサポートされていますか。

A. いいえ。WebLogic の輸出可能バージョンでは、40 ビット RC4 を使用した 512 ビット RSA のみがサポートされています。また、ブラウザではそのような証明書はサポートされていませんし、DSA 証明書を商用ベースで発行している会社もありません。

Q. Weblogic Server デプロイメントで、RSA 証明書と非 RSA 証明書を同時に使用することはできますか。

A. できません。

Q. 非 RSA クライアント コードで RSA ライセンス コストを支払う必要がありますか。

A. WebLogic Server では、WebLogic Server と WebLogic クライアント間の SSL に対して RSA の使用を許可しています。WebLogic Server を使用する場合、RSA に関して他のライセンスは必要ありません。 ただし、付加価値再販業者によって規約は異なります。

Q. WebLogic Server で Netscape セキュリティ証明書を使用するにはどうすればよいですか。

A. Netscape では、プライベート キーと公開鍵が 1 つのファイルに格納され、公開鍵とプライベート キーの分離が防止されます。したがって、Netscape ユーティリティを使用しないで別の証明書要求を生成する必要があります。WebLogic Server で Certificate Request サーブレットを使用すると、新しい証明書に対する要求を生成できます。

Q. WebLogic Server はプライベート キーをどこに格納するのですか。

A. WebLogic Server 7.0 は、コンフィグレーションされたキーストア プロバイダ内でプライベート キーを探します。プライベート キーをキーストア プロバイダ内に置けるようになる前に、次に示すコンフィグレーション手順を実行する必要があります。

  1. Administration Console を用いて、キーストア プロバイダをコンフィグレーションします。

  2. コンフィグレーションされたキーストア プロバイダ内にプライベート キーをロードします。

  3. WebLogic Server Administration Console の [SSL プロトコル] タブで、[サーバ プライベート キーのエイリアス] 属性と [サーバ プライベート キーの Pass Phrase] 属性を指定します。

プライベート キーが見つからない場合、WebLogic Server は [サーバ] の [サーバ キー ファイル名] 属性で指定されたファイル内を探します。

詳細については、『WebLogic Security の管理』を参照してください。

注意: WebLogic キーストア プロバイダは WebLogic Server 7.0 SP1 で非推奨となりました。

Q. サーブレットおよび JSP へのアクセスを制限する方法を教えてください。

Java Servlet API 仕様 v2.3 では、Web アプリケーションのデプロイメント記述子を使用して特定のサーブレットおよび JSP へのアクセスを制限できます。この仕様のセクション 13.3.2 には、宣言型のセキュリティを使用するサンプルのデプロイメント記述子があります。詳細については、『WebLogic HTTP サーブレット プログラマーズ ガイド』を参照してください。Administration Console を用いて、EJB および Web アプリケーションのロールを指定することもできます。詳細については、『WebLogic Security の管理』を参照してください。

Q. RSA 暗号化アルゴリズムと javax.crypto.* API を使用してアプリケーションを構築できますか。

A. できません。WebLogic の RSA ライセンスは、エンド ユーザが RSA クラスを直接使用することを許可していません。RSA から暗号化ライブラリのライセンスを独自に取得する必要があります。

Q. JNDI 初期コンテキストを使用して、WebLogic Server ユーザのセキュリティ資格を渡すことができますか。

A. JNDI を使用してセキュリティ資格を渡す機能は 6.1 の WebLogic Server で非推奨となりました。7.0 の WebLogic Server でもこのメソッドを使用することはできます。しかし、ユーザをセキュリティ コンテキストに関連付ける場合、BEA では、JNDI ではなく Java Authentication and Authorization Service (JAAS) runAs() メソッドを使用することを推奨します。詳細については、『WebLogic Security プログラマーズ ガイド』を参照してください。

Q. WebLogic Server パスワードは安全ですか。

A. config.xml ファイルには、クリア テキスト形式のパスワードが存在しなくなりました。クリア テキスト形式のパスワードに代わって、config.xml ファイルには暗号化されたパスワードが格納されます。暗号化パスワードは、別のドメインにコピーできません。代わりに、config.xml ファイルを編集して、既存の暗号化パスワードをクリア テキスト パスワードに置き換えてから、そのファイルを新しいドメインにコピーします。Administration Console は、次にそのファイルに書き込むときにパスワードを暗号化します。

Q. WebLogic Server の起動時および稼動中に Java セキュリティ パーミッション エラーを受け取るのはなぜですか。

例 : java.security.AccessControlException:access denied (description of error)

どうすればよいでしょうか。

A. RecordingSecurityManager ユーティリティを使用すると、WebLogic Server の起動時または動作中に発生するパーミッションの問題を検出できます。このユーティリティで出力されるパーミッションを Java セキュリティ ポリシー ファイルに追加して、発見されたパーミッションの問題を解決できます。RecordingSecurityManager は、BEA のダウンロード ページで入手できます。

Q. WebLogic Server を起動するときに証明書コンフィグレーション エラーを受け取るのはなぜですか。

例 : Alert> <WebLogicServer> <Security> configuration problem with certificate file

A. SSL コンフィグレーション ファイルで WL_HOME 相対ファイル名を指定しなかった可能性があります。

詳細については、『WebLogic Security の管理』を参照してください。

Q. デモ用証明書を使用しているときに発信 SSL 接続を確立できないのはなぜですか。

A. SSL 接続を確立するときには、デジタル証明書の主体の DN が、SSL 接続を開始するサーバのホスト名と一致している必要があります。一致していないと、SSL 接続が中断されます。デモ用証明書を使用していると、このホスト名が一致しません。この状況を回避するには、WebLogic Server の起動時に次のコマンドライン引数を使用します。

-Dweblogic.security.SSL.ignoreHostnameVerification=true

この引数により、主体の DN とホスト名を比較するホスト名検証 (Hostname Verifier) が無効化されます。この解決策が推奨されるのは、開発環境においてのみです。さらにセキュアな解決策は、発信 SSL 接続を行うサーバ用に新しいデジタル証明書を取得することです。

Q. WebLogic Server への SSL 接続を確立するときに、コンフィグレーション エラーを受け取るのはなぜですか。

例 : <WebLogic Server> <SSLListenThread listening on port 8802> Failed to connect to t3s://localhost:8802.

SSL プロトコルのコンフィグレーションでの問題では、次の例外も送出されます。

<java.io.IOException: Write Channel Closed, possible handshaking or trust failure>

A. デフォルトでは、WebLogic Server にはデジタル証明書の主体の DN とホスト名を比較するホスト名検証が含まれています。 SSL 接続を確立するときには、デジタル証明書の主体の DN が、SSL 接続を開始するサーバのホスト名と一致している必要があります。デモ用証明書を使用していると、このホスト名が一致しません。この状況を回避するには、WebLogic Server の起動時に次のコマンドライン引数を使用します。

-Dweblogic.security.SSL.ignoreHostnameVerification=true

この引数により、ホスト名検証が無効化されます。この解決策が推奨されるのは、開発環境においてのみです。さらにセキュアな解決策は、WebLogic クライアント用に新しいデジタル証明書を取得することです。

WebLogic Server 7.0 では、WebLogic クライアントは、WebLogic Server 用のデジタル証明書に関して信頼性のある認証局かどうかのチェックを行います。クライアントは、WebLogic Server のデジタル証明書がクライアントにとって信頼性のある認証局により発行されたものでない場合には、その証明書を拒絶しても構いません。以前のバージョンの WebLogic Server はこのチェックを行いませんでした。

Q. サーブレットから no certificate メッセージが返されるのはなぜですか。

A. WebLogic Server は、SSL ハンドシェーク中にクライアントにデジタル証明書を求める (相互 SSL と呼ばれる) ようにコンフィグレーションされていない限り、デジタル証明書を持ちません。このエラーを受け取るのは、WebLogic サーブレットまたは JSP がクライアントでピア検証を試行したときです。[サーバ] ノード下の [SSL] タブで [クライアント証明書を強制] 属性を設定して、クライアント証明書を要求するように WebLogic Server をコンフィグレーションしてください。

Q. カスタム セキュリティ プロバイダが表示されません。つまり、Administration Console で [新しい Security_Provider_Type のコンフィグレーション] リンクとして表示されません。

A. システム管理者が MBean JAR ファイル (MJF) を lib/mbeantype ディレクトリに置いていることを確認してください。

Q. WebLogic Server Administration Console でカスタム セキュリティ プロバイダをコンフィグレーションしているときに例外が送出されるのはなぜですか。

例外の構文は次のとおりです。

java.lang.NoSuchMethodExcept: couldn't find getter for Name on examples.security.providers.providertype.MBeanName

A. WebLogic Server の起動スクリプトの CLASSPATH から、wlManagement.jar および wlSampleSecurityProviders.jar を削除する必要があります。

Q. CompatibilityRealm 内の Windows NT セキュリティ レルムで Windows NT ユーザを認証できないのはなぜですか。

A. Windows NT セキュリティ レルムで Windows NT ユーザを正しく認証するには、ローカルの Windows NT ドメインでユーザに「ローカル ログオン」という高度なユーザ権利を付与する必要があります。

 

Back to Top Previous Next