Katsuyuki Ohashi Ohashi's Blog

火曜日 2 24, 2009

みなさん、Webサービスのセキュリティをどう実装されていますか? 最近はIDEで簡単にEJBベースのWebサービスが開発できるので、 そこで一緒にセキュリティポリシーも実装してしまっているケースが 多くあるのではないかと思います。 例えば、NetBeansではSession EJBとして開発したWebサービスの デザインビューでQuality of Services指定としてセキュリティの オプションを設定することができます。 確かにこのやり方ではとても簡単にWebサービスのセキュリティポリシーを 実装できるのですが、開発者がデプロイ時のセキュリティポリシーを 意識する必要がある上、 セキュリティポリシーに変更があった場合にはWebサービスをビルド しなおして再デプロイする必要があります。 また、デプロイされているWebサービスのセキュリティポリシーの内容を 確認するために開発環境まで戻ることが必要であり、監査等のガバナンス面でも 問題が出てきます。管理するWebサービスの数が少なければ、 developer-dependent なやり方でも問題ないのかもしれませんが、 エンタープライズ環境でWebサービスの数が増えてきた場合には対処が難しくなります。

そこでオススメなのがWebサービス・セキュリティゲートウェイのアーキテクチャです。 サービス開発者はセキュリティポリシーが実装されていないplainな Webサービスを開発します。デプロイされたplainなWebサービスとクライアントの間に Webサービス・セキュリティゲートウェイを配置し、 クライアントはWebサービス・セキュリティゲートウェイを介してWebサービスにアクセスします。 セキュリティポリシーはWebサービス・セキュリティゲートウェイに実装され、 Webサービス・セキュリティゲートウェイ上でアクセスの監査や認証、サービスの バージョニング、XML変換等、必要な処理を実行し、クライアントからのリクエストを バックエンドのplainなWebサービスに転送します。このようにWebサービスそのもの実装から セキュリティポリシーを切り離すことによって、前述した問題点を解決することが可能になります。

Webサービス・セキュリティゲートウェイについては、 Java CAPS Field Technical Tips "Java CAPS 6 - Providing Policy-driven Web Services Security support using a XML Security Gateway" で 紹介されている whitepaperで詳しく説明されています。 このwhitepaperではWebサービス・セキュリティゲートウェイの実装として、 先月ここにも書いた Layer 7 のSecureSpan XML Gateway を使用した例が詳しく紹介されています。

私たち日本のSunPSでも昨年の 「内閣府 沖縄ソフトウェア・オフショアセンター整備モデル実証事業」プロジェクトで 同様なアーキテクチャを採用しました。このときはCAPS上にガバナンスレイヤを自前で 実装し、Java EEアダプタを介してバックエンドのGlassFish APサーバ上のWebサービスにつなげる 構成でゲートウェイを実現しました。ガバナンスレイヤではプラグイン可能なアダプタ形式で ポリシーを実装可能とし、セキュリティポリシーに加えて、コンテンツベースのルーティング機能等も 実装しました。 このプロジェクトの公開説明会が3月に札幌、東京、那覇で開催されますので、ぜひご参加ください。
平成21年3月4日(水)14:00~16:30 TKP札幌ビジネスセンター ANNEX 会議室A
平成21年3月5日(木)14:00~16:30 霞ヶ関ビル CTCセミナールーム
平成21年3月6日(金)14:00~16:30 沖縄産業支援センター 会議室 302・303号室
参加申込等の詳細情報は (株)おきぎんエス・ピー・オー様のこちらのページをご覧ください。
投稿されたコメント:

コメント
  • HTML文法 不許可