本稿はデータベースソフトウェア「SQL Anywhere」およびデータベース全般に関する英語ドキュメントを翻訳する形で提供しています。図など、部分的に英語のままになっていますが、製品のSQL Anywhere自体は完全に日本語化されていますのでご安心ください。
概要
Webサービスをテーマとするこれまでの記事では、話を複雑にするためという理由で、セキュリティオプションを無視するのが通例でした。しかし現実の商用アプリケーションの多くは、プライバシー、セキュリティ、データの完全性といった問題と関わりを持つものです。Webサービスを利用してデータアクセスを効率化するにしても、この問題を見落とすことがあってはなりません。本稿では、企業向けアプリケーションと小規模事業所向けアプリケーションのどちらでも等しく利用できる各種のセキュリティオプションについて解説します。Webサービスのセキュリティを支える機能を中心に話を進めますが、特定のデータベースに関連する話題としてSQL Anywhere 11でデータをセキュリティ保護する方法についても簡単に触れます。読者は、Webサービスとセキュリティの概念を熟知していることが望まれますが、その専門家である必要はありません。
要件
- SQL Anywhere 11
- Mozilla Firefox、Internet Explorer、または同等のブラウザ
はじめに
ここ数年のIT業界はSOAPサービスに重点を置くようになっていますが、それには十分な理由があります。SOAPは以前から利用されているサービス指向アーキテクチャの標準であり、特別な変更を加えなくても各種のプラットフォームを使用するユーザーにデータを供給できる柔軟性をもたらします。IBMとMicrosoftが述べているとおり、「... 疎結合、言語的中立性、プラットフォーム非依存という3つの特質を備えた方法でアプリケーション同士を組織内、企業間、さらにはインターネット上でリンクすることのメリットは、ますます明らかになりつつある」のです。データベースの世界では、これは企業データをSOAP/DISHサービスによって公開することを意味します。SQL Anywhere 11には、この種の要求を待ち受けて応答を返すことができるWebサーバが組み込まれています。要するに、これを使えば、それぞれ別のサービスで要求を待ち受けてデータベースに接続する必要性が減るということです。
Webサービスをテーマとするこれまでの記事では、SOAPの柔軟性に関する話題はすぐ語られるのに、セキュリティオプションについては、話を簡単にするためという理由で無視されるのが常でした。IBMとMicrosoftがこの重要性を把握していることは、「... 顧客、業界アナリスト、そして報道機関は、Webサービスの勢いが強まってくると、取り組むべき重要な領域が存在することに気付く。それがまさにセキュリティである」と述べていることからも分かります。現実の商用アプリケーションならば、取り扱うデータの完全性を保証するために、同じように標準化されたセキュリティプロトコルを利用することが必要になるはずです。そこで次の疑問が生じます。SOAPサービスをセキュリティ保護することはできるのか? そのセキュリティを既存の環境に実装するのはどのぐらい難しいのか?ということです。
幸い、柔軟性のためにセキュリティを犠牲にする必要はありません。TLS(Transport Layer Security)や暗号化されたHTTPSプロトコルを使えば、セキュリティ上の問題に対処しつつSOAPサービスを提供できます。さらに、サービスの認可という方式を用いて、データを基本的に非公開にしておき、認可された人々だけにアクセスを許すこともできます。こうしたセキュリティ方式は標準化されているので、企業データの提供側と消費側の双方が安心して利用できます。本稿の目的は、セキュリティの細部に踏み込んで、そのさまざまな形式を解き明かすことよりも、データベース駆動型の、SOAPベースのWebサービスに関して、標準的なセキュリティ対策を実装する方法を具体的に示すことにあります。
本稿では、Webサービス自体をセキュリティ保護する具体的な方法を中心に話を進め、データベースレベルのいくつかの方式についても取り上げます。SOAP Webサービスをデータベース内から作成し、必要な手順に従ってセキュリティを有効にするまでの作業を説明します。以上の作業が完了すると、Webサービスは安全にアクセスされるようになり、セキュリティ保護された完全なトランザクションが得られます。ここでは、こうした機能を簡単に実演できるように、SQL Anywhere 11を使用します。