セキュリティ ガイド

     前  次    目次     
ここから内容

ポータル デプロイメントのセキュリティ

この章では、ポータル デプロイメントのセキュリティについてのベスト プラクティス、ヒント、および技法を説明します。このガイドの他の章は、資格の追加、セキュリティ プロバイダの管理、委託された管理の設定による、ポータル リソースへのアクセスのセキュリティについて説明していますが、この章では、プロダクション環境のポータルをセキュリティで保護するための追加の手順について説明します。これには、ファイアウォールの使用、データベース接続のセキュリティ、WSRP プロデューサのセキュリティ、RMI、EJB JNDI など非 HTTP プロトコルを使用するアクセスのブロッキングなどが含まれます。

ヒント : この章では WebLogic Portal 固有の情報が説明されています。次に進む前に、WebLogic Server インストールのセキュリティの詳細について、WebLogic Server ドキュメント「プロダクション環境の保護」を読むことをお勧めします。

この章では、以下のセキュリティのトピックについて説明します。

 


機密情報の暗号化

簡単なセキュリティ対策として、パスワードやクレジット カード番号などの機密データを決してクリア テキストに保管しないようにします。

 


ファイアウォールの使用

ポータル ソフトウェアをセキュリティで保護するには、ファイアウォールを使用します。IP プロトコル フィルタ処理からコンテンツ フィルタ処理まで、ファイアウォールには多くの選択肢があります。どのファイアウォールも、ポータル ソフトウェアのセキュリティを保護するためのの第一歩として適しています。

最適な保護を得るは 2 つのファイアウォール ソリューションを使用します。WebLogic Server (または WebLogic でサポートされる認定サーバ) の前にファイアウォールを配置し、WebLogic でサポートされるサーバ プラグインを使用します。このプラグインが、もう 1 つのファイアウォールを介してポータル ソフトウェアと通信します。これらのファイアウォールは、HTTP と HTTPS 以外のすべてのトラフィックをフィルタで除外するようにコンフィグレーションできます。さらに、プラグインと WebLogic でサポートされているサーバは、プラグインと WebLogic でサポートされているサーバ間で双方向の SSL を実行するようにコンフィグレーションできます。

ファイアウォールに応じて、状況 (非暗号化) によっては、プラグインと Web サーバの間を通るパケットのコンテンツをフィルタ処理できます。

この方法の欠点は、両方のファイアウォールが同じプロトコルをフィルタ処理することです。そのため、攻撃者は最初のファイアウォールに通り抜けられると、2 つ目のファイアウォールも通り抜けられることになります。このセキュリティーホールによる危険を軽減するために、サポートされている WebLogic Web サーバの認定された安全なバージョンを使用できます。

ファイアウォールの詳細については、「サポート対象の Web サーバ、ブラウザ、およびファイアウォール」を参照してください。

 


WebLogic Portal Administration Console のセキュリティ

最も簡単な対策の 1 つは、WebLogic Portal Administration consol をセキュリティで保護することがです。

表 3-1 Administration Console のセキュリティ
セキュリティ アクション
説明
デフォルトのユーザ名とパスワードを変更する。
ポータル管理には、WebLogic Server の管理用ユーザ名とパスワードとは別のユーザ名とパスワードを使用することを推奨。
プロダクション環境にデプロイしない。
Administration Console をプロダクション環境に公式にデプロイする理由がなければ、アンデプロイするか、またはファイアウォールの後方に保護する。
認可されたアクセスを特定のネットワーク内からのみに制限するには、WebLogic 仮想ホストとネットワーク チャネルを使用する。
HTTPS と内部のネットワーク IP アドレスのみでリスンできるように、ネットワーク チャネルをコンフィグレーションする。ネットワーク チャネルを使用するように仮想ホストをコンフィグレーションする。内部のネットワーク IP アドレスにアクセスできるユーザにのみ見えるように、Administration Console を仮想ホストのみを対象とするように設定する。
WebLogic Server ドキュメントの、「仮想ホスト」および「カスタム ネットワーク チャネルのコンフィグレーション」を参照。

 


データベース通信のセキュリティ

極端な場合、データベース通信をセキュリティで保護すると有効な場合があります。すべてのドライバがこのようなメカニズムをサポートしているわけではありませんが、多くのプロバイダがデータベースに暗号化された通信を提供しています。このように特別の暗号化を行うと、パフォーマンス上で重い負荷となりますが、セキュリティにきわめて関心の高いお客様にとっては選択肢の 1 つとなります。

 


ポリシーおよび訪問者の資格の確認

ポータルをプロダクション環境へデプロイする前に、委託管理および訪問者の資格のポリシーを確認することは重要です。委託管理は、ロールの階層構造内で WebLogic Portal Administration Console の特権を伝達するメカニズムです。訪問者の資格を使用すると、ポータル アプリケーション内のリソースにどのユーザがアクセスできるか、それらのリソースに対してユーザが何をできるかを定義できます。

表 3-2 ポリシーおよび訪問者の資格の確認
セキュリティ アクション
説明
委託管理ポリシーを確認する。
委託管理のポリシーが希望どおりの方法にコンフィグレーションされていることを確認する。デフォルトのグループを変更することを推奨。詳細については、「委託管理のコンフィグレーション」を参照。
訪問者の資格を確認する。
ライブラリに含まれる各ポートレットに必ず資格を定義する。資格は複雑な項目なので、ポータルをデプロイする前にドキュメントを読んでコンフィグレーションを理解することが重要となる。詳細については、「訪問者の資格のコンフィグレーション」を参照。

 


WSRP アプリケーションのセキュリティ

この節では、WSRP を使用する WebLogic Porta アプリケーションをセキュリティで保護するためのベスト プラクティスについて説明します。WSRP セキュリティの詳細については、『連合ポータル ガイド』を参照してください。

表 3-3 WSRP アプリケーションのセキュリティ
セキュリティ アクション
説明
プロデューサ アプリケーションについては、WSDL パスと WSDL ポートに対応するすべてのパスを保護する。
プロデューサの WSDLは、HTTPS (SSL) サービスのエントリ ポイントについてのみポートを宣言する必要がある。WSDL の詳細については、『連合ポータル ガイド』の章の 「連合ポータルのアーキテクチャ」を参照。
常にセキュリティ トークンを要求するようにプロデューサとコンシューマをコンフィグレーションする。
デフォルトでは、トークンはユーザが認証されたときにのみ送信される。詳細については、『連合ポータル ガイド』の「SAML による WSRP セキュリティの確立」章を参照。
コンシューマをログアウトするとき、常に次の手順に従う。
  • セッションを終了する。
  • destroySessions のサポートを有効にする。
これらの手順によって、すべてのプロデューサ セッションも終了する。
ポートレット、ブック、およびページを選択的にリモートとして提供する。
デフォルトでは、WebLogic Portal プロデューサ アプリケーションにデプロイされているすべてのポートレットを、コンシューマはリモート ポートレットとして使用できます。ただし、Workshop for WebLogic のポートレットの [プロパティ] ビューで [リモートとして提供] プロパティを設定することにより、コンシューマが実際に使用できるポートレットを指定できる。同じアクションをリモートで使用可能なブックとページに適用する。詳細については、『連合ポータル ガイド』の「コンシューマに対するブック、ページ、およびポートレットの提供」章を参照。
コンシューマの資格を使用する。
コンシューマの資格によって、プロデューサはコンシューマに提供するポートレットを登録プロパティに基づいて判断できます。詳細については、『連合ポータル ガイド』の「コンシューマの資格」章を参照する。
ポートレット、ブック、またはページを UDDI レジストリに公開するときに、ユーザ名とパスワードではなく資格エリアスを使用する。
UDDI レジストリの公開に関する詳細については、『連合ポータル ガイド』での「UDDI レジストリへの公開」章を参照。
User Name Token (UNT) を使用しない。どうしても必要な場合、パスワード ダイジェストを有効にして UNT を使用する。
Username Token、すなわち UNT は、SAML に代わる方法として、SAML が提供するのと同じ基本のシングル サインオン機能を提供します。Username Token を使用すると、コンシューマのローカル ユーザをプロデューサのユーザへマッピングできます。詳細については、『連合ポータル ガイド』の「Username Token セキュリティのコンフィグレーション」章を参照。
SAML を使用するときには署名を要求する。
プロデューサでアサーティング パーティのプロパティをコンフィグレーションする場合、[Signatures Required] プロパティを有効にする。このアクションでは、すべてのアサーションが署名されている必要がある。詳細については、 『連合ポータル ガイド』 での「SAML による WSRP セキュリティの確立」章を参照。
キーストアを慎重に管理する。
キーストアで独自のキーを生成し、キーストアからデフォルト キーを削除する。詳細については、 『連合ポータル ガイド』 での「SAML による WSRP セキュリティの確立」章を参照。
WSRP SOAP モニタを無効にする。
Workshop for WebLogic と共にインストールされるメッセージ モニタ サーブレットを使用することにより、プロデューサとコンシューマの間のアクティビティをモニタすることができます。モニタの詳細については、『連合ポータル ガイド』での「その他のトピックおよびベスト プラクティス」章を参照。
カスタムのリソース接続フィルタを使用して有効な既知のリソースのみを取得する。
デフォルトでは、保護されていないリソースは既知のプロデューサ サーバから取得できる。詳細については、WebLogic Server の「接続フィルタの使用」節を参照。

 


非 HTTP プロトコルのブロッキング

すべての非 HTTP プロトコルがブロックされるように、サーバにファイアウォールを使用します。これには JNDI、EJB、RMI、T3 のようなプロトコルが含まれます。

 


コンテンツ管理システムのセキュリティ

この節では、コンテンツ管理システムをセキュリティで保護するためのヒントを説明します。

表 3-4 コンテンツ管理システムのセキュリティ
セキュリティ アクション
説明
機密データが含まれる可能性のあるすべてのコンテンツ ノード上に資格を配置する。
コンテンツ ノードの資格の詳細については、「コンテンツ管理リソースに関する訪問者の資格の設定」を参照。
コンテンツ管理リソースの委託管理ポリシーを確認する。
コンテンツ管理リソースの委託管理のポリシーが希望どおりにコンフィグレーションされていることを確認する。詳細については、「コンテンツ管理リソースへの委託管理の設定」を参照。
WebDAV API を保護する。

 


UUP データのセキュリティ

UUP (統合ユーザ プロファイル) には、ユーザ固有の情報を格納することができます。UUP および WebLogic Portal の詳細については、『ユーザの対話管理ガイド』の「UUP のコンフィグレーション」章を参照してください。

表 3-5 UUP データのセキュリティ
セキュリティ アクション
説明
UUP データとして格納される機密情報を暗号化する。
クレジット カード番号のような機密情報を UUP データとして格納する場合、そのデータの暗号化対策を取る。一般的には次のようなものになる。
ヒント : パスワードまたは機密情報 (クレジット カードなど) は決してクリア テキストに格納しない。
機密ユーザ プロファイル情報を、デフォルトプロファイル ストアに格納しない。代わりに UUP を使用する。
UUP を使用すると、データをネットワーク スタックのより後方に格納できる。保護されたリポジトリに既に存在する機密顧客データは、カスタム UUP 実装を使用して、必要な場合にのみアクセスすることができる。
UUP アクセス メソッドを保護する。
UUP アクセス メソッドは、ejb-jar.xml の EJB メソッド保護宣言を通じて保護されるロールにすることもできる。 

 


アプリケーション スコープのリソース

ポータル システムをさらに保護するために、アプリケーション スコープのリソースをコンフィグレーションします。これを行うには、ポータル アプリケーションに JDBC プールの定義を作成して、weblogic-application.xml コンフィグレーション ファイルからそれを参照する必要があります。JDBC プールに加えて、すべての JMS リソースにも同じ方法でアプリケーション スコープを設定できます。

詳細については、「JDBC アプリケーション モジュールのデプロイメントのコンフィグレーション」および「JMS アプリケーション モジュールのデプロイメントのコンフィグレーション」を参照してください。

 


GroupSpace アプリケーションのセキュリティ

この節では、ユーザが GroupSpace 内から新しい GroupSpaces を作成しないようにする方法について説明します。メンバーが GroupSpace 内から新しい GroupSpace を作成できるかどうかは、コミュニティ ロール (管理者が指定したコミュニティの機能) によって管理されます。コミュニティ ロールと機能の詳細については、『コミュニティ ガイド』 を参照してください。

communities-config.xml ファイルで指定されているため、次の種類のメンバーは、別の GroupSpace 内から新しい GroupSpace を作成すために管理ツールにアクセスできます。

<capability>
<name>manager</name>
<display-name>Manager</display-name>
<admin>true</admin>
</capability>

次の種類のメンバーはアクセスできません。

<capability>
<name>memberuser</name>
<display-name>Member User</display-name>
</capability>

コード リスト 3-1 のコードを使用して、すべてのメンバーの管理機能をチェックすることができます。

コード リスト 3-1 GroupSpace メンバーの管理機能のチェック
CommunityContext cc = CommunityContext.getCommunityContext(request);
CommunityUserContext userContext = communityContext.getCommunityUserContext();
CommunityMember thisMember = userContext.getMember();
CommunityMembership membership = userContext.getMembership(thisMember.getId(),   cc.getCommunity().getCommunityDefinitionId());
if(membership.hasAdminCapability())
{
...
}

 


WebDAV Web アプリケーションのセキュリティ

この節では、WebDAV Web アプリケーションをセキュリティで保護する方法について説明します。WebDAV は、WebLogic Portal アプリケーションと共に自動的にデプロイされます。

コード リスト 3-2 には、web.xml にある WebDAV Web アプリケーション WAR ファイル WEBLOGIC_HOME\cm\lib\modules\webdav-web-lib.war 用のデフォルトのセキュリティ制約スタンザを示します。WebDAV のデフォルトのセキュリティ設定を変更するには、デフォルトの <auth-constraint> 要素の <role-name> 属性を変更して特定の管理ロールのメンバーのみが WebDAV Web アプリケーションへのアクセス権を持つようにすることができます。

ヒント : web.xml 設定のデフォルトのセキュリティ制約を変更するには、デプロイメント計画を使用することをお勧めします。デプロイメント計画の使用の詳細については、『プロダクション業務ガイド』を参照してください。
コード リスト 3-2 web.xml での WebDAV コンフィグレーション
     <security-constraint id="securityconstraint">
          <web-resource-collection>
               <web-resource-name>webdav</web-resource-name>
               <description>Security constraint for webdav</description>
               <url-pattern>/*</url-pattern>
          </web-resource-collection>
          <auth-constraint>
               <role-name>AllAuthenticatedUsers</role-name>
          </auth-constraint>
     </security-constraint>

ページの先頭       前  次