BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > B2B トピック > B2B Integration セキュリティの実装 > セキュリティのコンフィグレーション |
B2B Integration セキュリティの実装
|
セキュリティのコンフィグレーション
ここでは、以下の内容を取り上げます。
B2B セキュリティのコンフィグレーションを行なう前に、キーストアのコンフィグレーションに説明されているキーストアのコンフィグレーションが完了していることを確認してください。WebLogic Integration B2B のコンフィグレーションに関する一般的な情報については、『B2B Integration 管理ガイド』の「基本的なコンフィグレーション タスク」を参照してください。
SSL プロトコルと相互認証のコンフィグレーション
SSL プロトコルと相互認証を使用するように WebLogic Server をコンフィグレーションするには、以下の手順を実行します。
図4-1 ドメインの選択
図4-3 [接続] ページ
図4-4 [SSL] コンフィグレーション ページ
WebLogic Integration B2B のアクセス制御リストのコンフィグレーション
ユーザまたはグループが WebLogic Integration B2B のリソースにアクセスできるかどうかは、リソースの ACL (Access Control List: アクセス制御リスト) によって決定されます。ACL を定義するには、以下の手順を実行します。
ACL の定義の詳細については、『WebLogic Security の管理』の「互換性レルムでの ACL の定義」を参照してください。
B2B リソースの場合、1 つまたは複数のパーミッションを付与できます。
WebLogic Integration B2B に付属しているサンプル コンフィグレーションに、JDBC 接続プールの設定済み ACL があります。この ACL には、このリソースの wlcSamplesUser ユーザに対して、reserve、shrink、および reset という 3 つのパーミッションが設定されています。
以下の手順では、ACL パーミッションを変更する場合に必要な手順の例を示しています。この例では、ドメイン WLIdomain の JDBC 接続プールの reset パーミッションを調整します。
図4-5 ナビゲーション ツリーの ACL の選択
図4-6 JDBC 接続プールの ACL
図4-7 [ACL] ダイアログ ボックス
ACL の定義の詳細については、『WebLogic Security の管理』の「互換性レルムでの ACL の定義」を参照してください。
WebLogic Integration B2B エンジンのセキュリティのコンフィグレーション
WebLogic Integration リポジトリには、WebLogic Integration B2B セキュリティ システムと B2B リソースにアクセスするトレーディング パートナに関するセキュリティ情報が格納されています。リポジトリ情報をコンフィグレーションするには、WebLogic Integration B2B Console を使用する方法と、データ ファイルで情報を指定してから Bulk Loader を使用してリポジトリにインポートする方法があります。
注意: WebLogic Integration 2.1 または WebLogic Integration 2.1 SP1 のリポジトリ データ ファイルを WebLogic Integration 7.0 のリポジトリにインポートする場合、その前にリポジトリ データ ファイルの WLC 要素の system-password 属性を変更して、wlisystem の現行パスワードと一致するようにする必要があります。リポジトリの移行の詳細については、『WebLogic Integration 移行ガイド』の「WebLogic Integration 2.1 から WebLogic Integration 7.0 への移行」、「ステップ 12. WebLogic Integration アプリケーションの開始およびテスト」を参照してください。
B2B セキュリティ システムの場合、必要に応じて以下のものをコンフィグレーションする必要があります。
B2B セキュリティ システムのこれらのエンティティをコンフィグレーションするには、以下の手順を実行します。
図4-8 WebLogic Integration B2B Console メイン ウィンドウ
図4-10 WebLogic Integration B2B の [セキュリティ] コンフィグレーション ページ
トレーディング パートナのセキュリティのコンフィグレーション
トレーディング パートナのセキュリティのコンフィグレーションでは、トレーディング パートナごとに以下のものを設定します。
ここからは、これらのコンポーネントごとにトレーディング パートナのセキュリティをコンフィグレーションする方法について説明します。
注意: Bulk Loader を使用してデータを WebLogic Integration リポジトリにインポートする場合、リポジトリでコンフィグレーションされている各トレーディング パートナを表す WebLogic Server ユーザは自動的には作成されません。これらの WebLogic Server ユーザを手動で作成する必要があります。詳細については、『B2B Integration 管理ガイド』の「Bulk Loader の操作」を参照してください。
トレーディング パートナの証明書のコンフィグレーション
WebLogic Integration B2B では、トレーディング パートナの以下の証明書をコンフィグレーションすることができます。
トレーディング パートナの証明書のコンフィグレーションに関しては、以下のような一般的な規則があります。
次の例は、Hello Partner サンプル アプリケーション用の WebLogic Server を起動する java コマンドを示しています。
%JAVA_HOME%¥bin¥java -classic -ms64m -ms64m -classpath %START_WL_CLASSPATH%
-Dbea.home=%BEA_HOME% -Dweblogic.home=%WL_HOME%
-Dweblogic.system.home=%WLC_SAMPLES_HOME% -Dweblogic.Domain=samples
-Dweblogic.management.password=%SYSTEM_PASSWORD%
-Dweblogic.Name=myserver
-Djava.security.policy=%WL_HOME%¥lib¥weblogic.policy
-DKey.certificate-name.password=%PASSWORD% weblogic.Server
上の例で、certificate-name はプライベート キー パスワードが指定される証明書の名前を表し、%SYSTEM_PASSWORD% および %PASSWORD% はその 2 つの環境変数の値を表します。
注意: パスワードは、startWeblogic などのスクリプトにハードコーディングせずに、環境変数に設定することをお勧めします。環境変数が使用された場合、スクリプトでは、そのスクリプトが実行される環境からパスワードの値を取得します。
トレーディング パートナの証明書をコンフィグレーションするには、以下の手順を実行します。
注意: 以下の手順では、次の事項を前提にしています。
図4-14 トレーディング パートナの [一般] コンフィグレーション ページ
図4-15 トレーディング パートナの [証明書] コンフィグレーション ページ
図4-16 新しいトレーディング パートナ証明書の追加
注意: WebLogic Integration でトレーディング パートナを作成すると、そのトレーディング パートナに対応する WebLogic Server ユーザが指定したユーザ名で実行時に作成されます。ただし、トレーディング パートナを WebLogic Integration リポジトリから削除しても、対応する WebLogic Server ユーザは自動的には削除されません。トレーディング パートナを削除する場合は、対応する WebLogic Server ユーザも手動で削除する必要があります。
リソースのリストについては、次の URL の「BEA dev2dev Online」を参照してください。WebLogic Integration B2B リソースの管理に役立つと思われます。
http://dev2dev.bea.com/index.jsp
ここには、デジタル証明書およびプライベート キーを処理するツールなど、便利なユーティリティが用意されているサイトのリンクもあります。
セキュアな転送方式のコンフィグレーション
トレーディング パートナの転送方式をコンフィグレーションする場合は、トレーディング パートナの転送方式を転送セキュリティ プロトコルにバインドします。たとえば、トレーディング パートナが SSL 証明書を使用するようにコンフィグレーションされている場合、トレーディング パートナの転送方式を、SSL を使用する転送プロトコルにバインドする必要があります。セキュアな転送方式をコンフィグレーションすると、クライアント証明書が発信 SSL 用に使用されます。WebLogic Integration で使用できるクライアント証明書は 1 つなので、セキュアな転送方式をコンフィグレーションする場合にクライアント証明書を選択する必要はありません。
トレーディング パートナのセキュアな転送方式をコンフィグレーションするには、以下の手順を実行します。
図4-17 トレーディング パートナの [転送] コンフィグレーション ページ
セキュアな配信チャネルのコンフィグレーション
トレーディング パートナの配信チャネルをコンフィグレーションする場合、セキュアな転送方式のコンフィグレーションでコンフィグレーションしたセキュアな転送方式にバインドすることで配信チャネルをセキュリティで保護することができます。
セキュアなチャネルをコンフィグレーションするには、以下の手順を実行します。
図4-18 トレーディング パートナの [配信チャネル] コンフィグレーション ページ
セキュアなドキュメント交換のコンフィグレーション
トレーディング パートナのドキュメント交換をコンフィグレーションする場合、ドキュメント交換と、デジタル署名またはメッセージ暗号化を提供するビジネス プロトコル バインディングを関連付けることができます。デジタル署名サポートは、WebLogic Integration でサポートされているすべてのビジネス プロトコルで使用可能ですが、メッセージ暗号化は RosettaNet プロトコルを使用した場合にのみ使用できます。
デジタル署名またはメッセージ暗号化をサポートするには、以下の手順を実行します。
図4-19 トレーディング パートナの [ドキュメント交換] コンフィグレーション ページ
メッセージ暗号化のコンフィグレーション
WebLogic Integration B2B セキュリティ入門で説明したように、B2B のメッセージ暗号化サービスでは、暗号化を必要とするビジネス プロトコルに合わせてビジネス メッセージを暗号化します。現在、メッセージ暗号化は RosettaNet 2.0 プロトコルを使用する場合にのみサポートされています。
WebLogic Integration B2B のメッセージ暗号化のしくみ
データは、送信側の証明書、プライベート キー、および受信側の証明書を組み合わせてビジネス メッセージをエンコードすることで暗号化されます。暗号化したメッセージは、受信側のプライベート キーを使用しないと解読できません。
注意: B2B のメッセージ暗号化機能はライセンス(Encryption/Domestic または Encryption/Export)によって制御されますが、ビジネス メッセージの解読機能は制御されません。WebLogic Integration が有効な暗号化ライセンスを持っていない場合、B2B エンジンは暗号化サービスを無効にします。ただし、B2B エンジンは、受け取ったビジネス メッセージを常に解読することができます。
WebLogic Integration メッセージ暗号化サービスでは、次のアルゴリズムをサポートしています。
次の図は、公開鍵とプライベート キーを使用してデータを暗号化する方法を示しています。
図4-20 WebLogic Integration B2B のメッセージ暗号化サービス
注意: メッセージを暗号化するには、暗号化サービスを使用するための有効なライセンスが必要です。 メッセージ暗号化のコンフィグレーション RosettaNet 2.0 ベースの会話定義のトレーディング パートナが交換するビジネス メッセージのメッセージ暗号化をコンフィグレーションするには、以下の手順を実行します。
注意: リポジトリ データ ファイルで暗号強度が指定されている場合、実行時には無視されます。
否認防止のためのデジタル署名のコンフィグレーション
デジタル署名サポート(否認防止性の実装を参照)は、特にトレーディング パートナ間で転送しているときに、ビジネス メッセージの内容が改ざんされることを防ぐ手段を提供します。デジタル署名サポートは否認防止の要件です。
否認防止性を実装する場合、以下の手順を実行して、B2B エンジンでデジタル署名サポートをコンフィグレーションする必要があります。
署名証明書を選択すると、次の図の右下隅に示すように、署名証明書に関連付けられた変更不能なフィールドにデータが表示されます。
図4-22 否認防止性のコンフィグレーション
これらの変更不能なフィールドの用途は以下のとおりです。
WLCCertAuthenticator クラスのカスタマイズ
WLCCertAuthenticator クラスは、WebLogic Server CertAuthenticator クラスの実装です。WLCCertAuthenticator クラスのデフォルト実装は、トレーディング パートナのデジタル証明書を、WebLogic Integration リポジトリに定義されている、対応するトレーディング パートナにマップします。この機能を拡張すると、トレーディング パートナ以外のユーザに対しても相互認証を使用できます。拡張例として、Web ブラウザまたは Java クライアントを WebLogic Server ユーザにマップするようにクラスを変更する方法があります。
WLCCertAuthenticator クラスは、トレーディング パートナと WebLogic Server 間で SSL 接続が確立されてから、WebLogic Server によって呼び出されます。このクラスは、デジタル証明書からデータを抽出して、デジタル証明書に対応するトレーディング パートナ名を調べます。
次のコード例は、ユーザを取得するための WebLogic のデフォルト レルムを使用しており、WLCCertAuthenticator クラスのカスタマイズ方法を示しています。
public User authenticate(String userName, Certificate[] certs, boolean ssl)
{
String user = null;
// SSL が使用されていない場合は復帰する
if (ssl == false)
{
return null;
}
// 証明書が c ハブまたはトレーディング パートナのいずれかであることを検証する
// 検証後、対応する WLS ユーザを返す
if ((user = Security.isValidWLCCertificate(certs))!= null)
{
return realm.getUser(user);
}
// 証明書は有効な WLC 証明書ではない
// ここで非 WLC 証明書をチェックして対応するユーザを返す
}
証明書検証プロバイダ インタフェースのコンフィグレーション
トレーディング パートナの証明書の検証で説明したように、証明書検証プロバイダを使用して、トレーディング パートナのデジタル証明書を検証できます。証明書検証プロバイダ(CVP)を使用する場合、ここで説明する手順に従って、B2B Console でコンフィグレーションする必要があります。
CVP をコンフィグレーションするには、以下の手順を実行します。
図4-23 WebLogic Integration B2B システムのセキュリティ コンフィグレーション ページ
注意: 証明書検証プロバイダをロードするには、Bulk Loader を使用します。詳細については、『B2B Integration 管理ガイド』の「Bulk Loader の操作」を参照してください。
発信 HTTP プロキシ サーバを使用するための WebLogic Integration B2B のコンフィグレーション
高度なセキュリティで保護された環境で WebLogic Integration を使用する場合、WebLogic Integration をプロキシ サーバ越しに使用すると効果的です。プロキシ サーバを使用すると、トレーディング パートナはセキュリティを危険にさらすことなくイントラネットまたはインターネット経由で通信できます。プロキシ サーバの用途は以下のとおりです。
プロキシ サーバをローカル ネットワーク上でコンフィグレーションすると、ネットワーク トラフィック(SSL と HTTP)は、プロキシ サーバを経由して外部ネットワークにトンネリングされます。次の図は、WebLogic Integration 環境でのプロキシ サーバの使用方法を示しています。
図4-24 プロキシ サーバ
WebLogic Integration 用のプロキシ サーバをコンフィグレーションするには、以下の手順を実行します。
図4-25 WebLogic Integration B2B Console のコンフィグレーション タブ
図4-26 WebLogic Integration のプロキシ サーバ コンフィグレーション ページ
myproxy.mycompany.com.
permission java.util.PropertyPermission "ssl.proxyHost", "read, write";
permission java.util.PropertyPermission "ssl.proxyPort", "read, write";
Web サーバおよび WebLogic プロキシ プラグインでの WebLogic Integration のコンフィグレーション
リモートのトレーディング パートナからのビジネス メッセージを処理するようにプログラムされている Web サーバ(Apache サーバなど)で WebLogic Integration をコンフィグレーションすることができます。Web サーバは以下のサービスを提供できます。
Web サーバは WebLogic プロキシ プラグインを使用します。プラグインをコンフィグレーションすると、以下のサービスを提供できます。
次の図は、Web サーバ、WebLogic プロキシ プラグイン、および WebLogic Integration を使用する環境のトポロジを示しています。
図4-27 Web サーバおよび WebLogic プロキシ プラグインの使い方
注意: プロキシ プラグインでは HTTP を使用しますが、プロキシ プラグインでビジネス メッセージを転送する場合は、HTTPS プロトコルを使用するように WebLogic Integration をコンフィグレーションする必要があります。
会話におけるトレーディング パートナが、プロキシ サーバに Microsoft IIS を使用する場合、その会話で使用される証明書は、すべて、Verisign、Entrust などのよく知られた認証局によって承認されていなければなりません。自己署名証明書を使用すると、IIS プロキシ サーバ経由で渡された要求がエラーになります。これは、IIS における制限で、WebLogic Integration の制限ではありません。
Web サーバのコンフィグレーション
Web サーバをコンフィグレーションする方法については、『WebLogic Server 管理者ガイド』の「WebLogic Server Web コンポーネントのコンフィグレーション」を参照してください。
次のコード例は、プロキシ プラグインをコンフィグレーションするための httpd.conf (Apache サーバ用) のセグメントを示しています。
# LoadModule foo_module libexec/mod_foo.so
LoadModule weblogic_module libexec/mod_wl_ssl.<suffix>
<Location /weblogic>
SetHandler weblogic-handler
PathTrim /weblogic
WebLogicHost myhost
WebLogicPort 80
</Location>
トレーディング パートナの WebLogic Server ユーザ アイデンティティ
WebLogic Server ユーザ アイデンティティは、リモートのトレーディング パートナをコンフィグレーションするときに省略できます。特定の WebLogic Integration B2B デプロイメントが厳重なセキュリティを必要とする場合、以下のように設定することをお勧めします。
Business Process Management による WebLogic Integration リポジトリへのアクセスの管理
WebLogic Integration で提供されている Business Process Management (BPM) 機能を使用する予定の場合、BPM ユーザが WebLogic Integration リポジトリへのアクセスを共有できるようにしておく必要があります。そのようなアクセスを可能にするには、リポジトリを使用するパーミッションで BPM をコンフィグレーションする必要があります。WebLogic Server グループ wlpiUsers を、WebLogic Integration リポジトリが使用する JDBC 接続プールの ACL に追加します。
さらに、WebLogic Integration Studio または Worklist ユーティリティのユーザが WebLogic Integration リポジトリに格納されているワークフロー テンプレートにアクセスする必要がある場合、そのユーザを WebLogic Server 管理 MBean の適切な ACL に追加する必要があります。そのためには、WebLogic Server MBean の以下の ACL をそのユーザに対して指定します。各設定で、<user> は BPM ユーザの名前に置き換えてください。
acl.access.weblogic.admin.mbean.MBeanHome=<user>
acl.lookup.weblogic.admin.mbean.MBeanHome=<user>
B2B リソースの ACL のコンフィグレーションについては、WebLogic Integration B2B のアクセス制御リストのコンフィグレーションを参照してください。
サーバ側認証のコンフィグレーション
デフォルトでは、WebLogic Integration B2B は双方向 SSL 認証を使用します。しかし、トレーディング パートナ間では証明書ベースの認証を必要としない場合、サーバ側認証を使用すると便利です。
サーバ側認証をコンフィグレーションするには、以下の手順を実行します。
c:¥bea¥user_projects¥domain
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |