Web サービス・アプリケーションに関連する主要な概念を説明します。
Web サービスは、ネットワークを介して
記述、公開、検索、および呼び出しを行うことができる、
自己完結型 (self-contained) のモジュラー・アプリケーションです。
Web サービスは、サービス指向アーキテクチャー (SOA) を実装し、柔軟で標準化された方法で、リソースとデータの接続または共用をサポートするものです。サービスは、動的で自動化されたディスカバリーおよび再使用をサポートするように、記述および編成されます。
以下のリストには Web サービスの中心概念が含まれています。
- Web サービス
- Web サービスは、ネットワークを介して記述、公開、検索、および呼び出しができる
内蔵タイプのモジュラー・アプリケーションです。
- Web Services for J2EE 仕様
- Web Services for Java 2 Platform, Enterprise Edition (J2EE) 仕様は、
Java 言語に基づいて Web サービスを実装するためのプログラミング・モデルと
ランタイム・アーキテクチャーを定義しています。
Web Services for J2EE 仕様は、
別名 Java Specification Requirements (JSR) 109 ともいいます。
この仕様には、Web サービスを開発およびインプリメントするためのオープン・スタンダードが含まれています。
- Java API for XML-based
RPC (JAX-RPC)
- Java API for XML-based RPC (JAX-RPC) 仕様を使用すると、SOAP ベースの相互運用性のあるポータブル Web サービスと WEB サービス・クライアントを開発することができます。
JAX-RPC は、Java プラットフォームで Web サービスを開発およびデプロイするための、
コア API を提供しており、J2EE プラットフォームには必須のパーツです。
J2EE プラットフォームを使用して、ポータブル Web サービスを開発します。
J2EE コンテナー上で Web サービスを開発およびデプロイすることができます。
- SOAP
- SOAP は、非集中型の分散環境で構造化された情報を交換するための仕様です。SOAP は、SOA 環境において 3 つの鍵アクター (サービス・プロバイダー、
サービス・リクエスター、およびサービス・ブローカー) の間で通信する主な方法を表します。
この設計の主な目標は、単純かつ拡張可能であることです。
SOAP メッセージは Web サービスを要求するために使用します。
- SAAJ (SOAP with Attachments API for Java) インターフェース
- SOAP with Attachments API for Java
(SAAJ) は、SOAP メッセージング用に使用され、JAX-RPC 実装時には、
その背後で活躍します。
JAX-RPC 仕様がサポートする標準で XML を Java タイプにマップすることができますが、XML スキーマ・タイプには制限があります。
このため、SOAPElement インターフェースを使用してカスタム・データ・バインダーを作成することができます。
- Web Services-Interoperability Basic Profile
- Web Services-Interoperability (WS-I) Basic Profile は、
インターオペラビリティーをプロモートする非独占 Web サービス仕様のセットです。
- JAX-RPC を使用した RMI-IIOP
- JAX-RPC は、リモート・プロシージャー・コールを
介して Web サービスを呼び出すための、Java 標準 API です。
トランスポートは、
インターネット経由で通信するためにプログラム言語によって使用されます。SOAP および Remote Method Invocation (RMI) などのトランスポートとともにプロトコルを使用することができます。Remote Method Invocation over Internet Inter-ORB Protocol (RMI-IIOP) を JAX-RPC と一緒に使用して、
非 SOAP バインディングをサポートすることができます。
- WS-I Attachments Profile
- WS-I Attachments Profile は、
インターオペラビリティーを向上させるための、
非独占的 (non-proprietary) な Web サービス仕様のセットです。
このプロファイルは、WS-I Basic Profile を提供して、
添付ファイル・ベースの Web サービスとともに、
相互運用可能な SOAP メッセージ用のサポートを追加します。
- サービス指向アーキテクチャー
- SOA とは、例えば、サービス間でデータを受け渡したり、
1 つ以上のサービス間でアクティビティーを調整するといった、
相互に通信するサービスの集合です。
- サービス指向アーキテクチャーへの Web サービス・アプローチ
- Web サービス・アプローチは、SOA を実装します。
Web サービスで主要な点は、
プラットフォームとプログラム言語から独立した標準インターネット・プロトコルを介してアクセスできる、
機能的なビルディング・ブロックを作成することです。
これらのサービスは、新規アプリケーションであることも、
あるいはそれらをネットワーク対応にするために、
既存のレガシー・システムを構築しただけのものであることもあります。
サービスは、別のサービスに依存して、その目標を達成できます。
- サポートされている Web サービス・ビジネス・モデル
- SOA を使用した場合の利点は、Web サービスが異機種混合が進んだ e-business モデル内で、独立したタスクを実行する、小さなモジュールのバインディングに適しているという点です。
Web サービスは、ビジネス・モデル内の既存のアプリケーションを中心に容易に構築でき、異なるビジネス・プロセスにプラグインすることができます。
- カスタム・データ・バインダー
- カスタム・データ・バインダーは、XML スキーマの Java オブジェクトへのマップに使用します。
カスタム・データ・バインダーは、
現行の JAX-RPC 仕様で
サポートされていない XML スキーマ・タイプに対して、
バインディングを提供します。
- カスタム・バインディング・プロバイダー
- カスタム・バインディング・プロバイダーは、宣言メタデータ・ファイルを持った
カスタム・データ・バインダー・クラスのパッケージです。カスタム・バインディング・プロバイダーの主な目的は、
関連するカスタム・データ・バインダーを統合して、特定のユーザー・シナリオをサポートすることです。カスタム・バインディング・プロバイダーは、カスタム・データ・バインダーをエミッター・ツールや
ランタイム・システムに接続するために使用します。そうすることで、エミッター・ツールは適切な成果物を生成することができ、
ランタイム・システムは既存タイプのマッピング・システムを拡大し、適用されたカスタム・データ・バインダーを反映して
呼び出すことができます。
- トランスポート・レベルでの Web サービス・アプリケーションの保護
- HTTP の下で実行される SSL または Transport
Layer Security (TLS) を基にした、トランスポート・レベルのセキュリティーを使用することができます。トランスポート・レベルのセキュリティーを使用して Web サービス・メッセージを保護します。ただし、トランスポート・レベル・セキュリティー機能は、WS-Security ま
たは HTTP 基本認証に装備されている機能に依存することはありません。
- HTTP 基本認証による Web サービスの認証
- HTTP 基本認証は、ユーザー名とパスワードを使用して、保護されたエンドポイントに対してサービス・クライアント
の認証を行います。アプリケーション・サーバーは、J2EE セキュリティー・モデルによって
保護されている、Web サービスなどの複数のリソースを持つことができます。
- WSDL
- Web サービス記述言語 (WSDL) は、Extensible Markup Language (XML) ベースの記述言語です。この言語は、Web サービスを記述するための
業界標準として World-Wide Wide Web Consortium (W3C) に提出されました。
WSDL の機能は、2 つの主なアーキテクチャー原則から派生しています。
これらの原則とは、一連のビジネス・オペレーションを記述する機能と、
その記述を 2 つの基本単位に分ける機能のことです。
これらの単位は、オペレーションの記述、
およびオペレーションとそれに関連した情報をパッケージする方法の詳細のことです。
- Web サービスの保護のための新機能
- 製品のこのバージョンでは、Web サービスのセキュリティー強化には、Web サービス・セキュリティー仕様のセクションのサポート、
およびセキュリティー・トークン機能のプラグインと拡張に対するアーキテクチャー面でのサポートが含まれます
- Web サービス・セキュリティーのハイレベル・アーキテクチャー
- 製品のこのバージョンは、J2EE Web サービス・デプロイメント/モデルを使用して、Web サービス・セキュリティーを実装します。Web サービス・セキュリティー制約は、Web サービス・デプロイメント記述子およびバインディングの IBM 拡張で指定されています。
Web サービス・セキュリティー・ランタイムは、デプロイメント記述子に指定されたセキュリティー制約を実行します。
デプロイメント・モデルの利点の 1 つは、アプリケーション・ビジネス・ロジックの外側で Web サービス・セキュリティー要件を定義できることです。
役割の分離により、アプリケーション開発者はビジネス・ロジックに焦点を合わせ、セキュリティー・エキスパートはセキュリティー要件を指定することができます。
- プラットフォーム構成とデフォルト・バインディングの概要
- Web サービス・セキュリティー制約は、J2EE の Web サービス・
デプロイメント記述子の IBM 拡張内で定義されています。
Web サービス・セキュリティーの IBM 拡張デプロイメント記述子およびバインディングは、IBM の所有です。
これらのファイルは複雑であり、エラーの原因となる可能性があるため、
テキスト・エディターを使用して手動でデプロイメント記述子およびバインディング・ファイルを編集することはお勧めできません。
ただし、IBM が提供するツールを使用して、アプリケーション用の Web サービス・セキュリティー制約を構成することは推奨されています。
そのツールとは、Rational Application Developer、Application Server Toolkit、およびアプリケーション・サーバー管理コンソールです。
- セキュリティー・モデル混合
- WebSphere Application Server バージョン 6 以降のプログラミング環境内には、
マルチプロトコルおよび複数チャネルが存在する可能性があります。例えば、HTTP トランスポートを介した Web ベース・アプリケーションにアクセスします。
例えば、サーブレット、JavaServer Pages (JSP) ファイル、HTML などがあります。
Remote Method Invocation over the Internet Inter-ORB
(RMI/IIOP) プロトコルを介してエンタープライズ・アプリケーションにアクセスし、また Simple Object Access Protocol (SOAP) over HTTP、SOAP over Java Message Service (JMS) または SOAP over RMI/IIOP プロトコルを介して Web サービス・アプリケーションにアクセスします。
これらのアプリケーションのそれぞれは、異なる業務要件を実行します。
さらに重要なことは、Web サービスはしばしば、JavaBeans または EJB ファイルを用いて、サーブレットとして実装されることです。
したがって、Web サービス・セキュリティー・モデル
は、Web および EJB コンポーネント用の
J2EE セキュリティー・モデルとのミックス・アンド・マッチが可能です。
Web サービス・セキュリティーは、J2EE 役割ベースのセキュリティーおよびアプリケーション・サーバーのこのバージョン用のセキュリティー・ランタイムを実装しています。
- Web サービス・セキュリティー・サービス・プロバイダーのプログラミング・インターフェースのデフォルトのインプリメンテーション
- 以下の情報は、このバージョンのアプリケーション・サーバー内での、Web サービス・セキュリティーのサービス・プロバイダー・インターフェース (SPI) のデフォルト実装を説明したものです。この文書では、WebSphere Application Server バージョン 5.x のサービス・プロバイダー・インターフェースのデフォルト・インプリメンテーションについては説明しません。
その代わりに、『バージョン 6.0.x 以降で推奨されない、
バージョン 5.x 実装の
WS-Security に基づいた、バージョン 5.x アプリケーションの
Web サービスの保護』を参照してください。
- デフォルト構成
- この製品のこのバージョンでは、管理コンソールを介して構成することが可能なさまざまなサンプル構成が提供されています。
指定された構成は、セル・レベルまたはサーバー・レベルで反映されます。
これらの構成は、サンプルおよびテストのみを目的とするものであるため、実稼働環境では使用しないでください。
これらのサンプル構成を変更するには、アプリケーション・サーバーに用意された管理コンソールを使用することをお勧めします。
- nonce、ランダムに生成されたトークン
- Nonce はランダムに生成される暗号トークンであり、リプレイ・アタックを防ぐために使用されます。nonce は SOAP メッセージ内の任意の位置に挿入することができますが、通常は UsernameToken エレメント内にこのトークンを挿入します。
- XML デジタル・シグニチャー
- XML-Signature Syntax and Processing (XML デジタル・シグニチャー) は、
デジタル・コンテンツに対するデジタル・シグニチャーに署名し、それを検査するための XML 構文および処理規則を定義する仕様です。
- コレクション証明書ストア
- コレクション証明書ストアは、ルート以外の認証局 (CA) 証明書および証明書取り消しリスト (CRL) の集合です。
この CA 証明書および CRL の集合は、ディジタル・シグニチャー付きの SOAP メッセージのシグニチャー検査で使用します。
- トラスト・アンカー
- トラスト・アンカーでは、
トラステッド・ルート証明書を格納する鍵ストアを指定します。
これらの証明書を使用して、SOAP メッセージに埋め込まれた X.509 証明書を検証します。
- 鍵ロケーター
- 鍵ロケーターまたは com.ibm.wsspi.wssecurity.keyinfo.KeyLocator クラスは、デジタル署名および暗号化の鍵を検索するメカニズムの抽象概念です。
- トラステッド ID エバリュエーター
- トラステッド ID エバリュエーター (com.ibm.wsspi.wssecurity.id.TrustedIDEvaluatorImpl) は、
指定された ID 名が信頼できるものであるかどうかを評価するメカニズムからの抽出物です。
- XML 暗号化
- XML 暗号化は、W3C が開発した仕様です。暗号化されたデータの暗号化解除手順、
暗号化されたデータを表す XML 構文、
データの暗号化解除に使用される情報、
および暗号化アルゴリズム (Triple Data Encryption Standard (DES)、Advanced Encryption Standard (AES)、および RSA) などのリストが含まれています。
- セキュリティー・トークン
- セキュリティー・トークンは、
クライアントが行なった一連の要求を表し、
名前、パスワード、ID、鍵、証明書、グループ、特権などが含まれます。
- ユーザー名トークン
- UsernameToken エレメントを使用すると、ユーザー名と、パスワード情報 (オプション) を伝搬できます。
また、このトークン・タイプを使用して、基本認証情報を伝送することもできます。
ユーザー名とパスワードは、ともにメッセージの認証に使用されます。
ユーザー名を含む UsernameToken は ID アサーションに使用されます。
これにより、信頼関係に基づいてユーザーの ID が確立されます。
- バイナリー・セキュリティー・トークン
- ValueType 属性は、
セキュリティー・トークンのタイプ (例えば Lightweight Third Party Authentication (LTPA) トークン) を識別します。
EncodingType タイプのトークン・タイプは、セキュリティー・トークンのエンコード方式 (例えば Base64Binary) を示します。
BinarySecurityToken エレメントは、
バイナリー・エンコードされたセキュリティー・トークンを定義します。
エンコード方式は、EncodingType 属性で指定されます。
値のタイプとスペースは、ValueType 属性で指定します。
WebSphere Application Server バージョン 6 以降の Web サービス・セキュリティー・インプリメンテーションは、
LTPA と X.509 証明書の両方のバイナリー・セキュリティー・トークンをサポートしています。
- Web サービス・セキュリティーに対するハードウェア暗号デバイスのサポート
- Web サービス・セキュリティーは、暗号ハードウェア装置の使用をサポートします。
Web サービス・セキュリティーでハードウェア暗号装置を使用するには、
2 とおりの方法があります。
- Web サービス・セキュリティー仕様の年表
- ここでは、Web サービス・セキュリティー仕様の作成に使用されるプロセスについて説明します。
- Web サービス・セキュリティーと Java 2 Platform, Enterprise Edition セキュリティーの関係
- ここでは、Web サービス・セキュリティー (メッセージ・レベルのセキュリティー) と
J2EE プラットフォーム・セキュリティーとの関係について説明します。
また、J2EE 役割ベースの許可検査についても説明します。
- Web Services Addressing サポート
- アプリケーション・サーバーの Web Services Addressing (WS-Addressing) サポートは、
W3C WS-Addressing 仕様または W3C submission WS-Addressing 仕様を使用する Web サービス用の環境を提供しています。
- Web Services Resource Framework サポート
- アプリケーション・サーバーの Web Services Resource Framework (WSRF) サポートは、OASIS WSRF 仕様に準拠する Web サービス・アプリケーション用の環境を提供します。
- WSIF 概要
- Web Service Invocation Framework (WSIF) は、Web サービスを呼び出すための Java API を提供しています。
この API は、サービスのフォーマットや、そのサービスを呼び出すトランスポート・プロトコルには依存しません。
- WSIF の目標
- WSIF は、基盤となるバインディングまたはアクセス・プロトコルに関係なく、
SOAP サービスが提供する柔軟性を、Web サービスを呼び出すための一般的モデルに拡張することを目的にしています。
- バージョン 3 UDDI レジストリーの概説
- Universal Description, Discovery and Integration (UDDI) 仕様には、
Web サービスに関する情報を公開したり、検出したりする方法が定義されています。Web サービス という用語は、企業が、通常はインターネット接続を通じて、
別の企業、子会社、あるいはソフトウェア・プログラムがサービスを利用できるように公開する、
特定のビジネス機能を表します。
UDDI 仕様は OASIS UDDI Web サイトにあります。
- UDDI レジストリー実動使用のためのデータベースの考慮事項
- UDDI レジストリーは多くのデータベースを完全にサポートしており (詳しくは『バージョン 3 UDDI レジストリーの概要』
を参照)、開発およびテストの目的に使用できます。
ただし、どのデータベースが UDDI レジストリーの予想される実動使用に適したものであるかを判別する際には、要求のサイズおよび量ならびに UDDI レジストリーのパフォーマンスおよびスケーラビリティーなど、考慮すべき要因があります。
- UDDI レジストリー・インターフェースのアクセス制御
- UDDI レジストリー・インターフェースへのアクセスは、役割マッピングを使用する J2EE 宣言セキュリティーと、
UDDI プロパティーおよびポリシー (ユーザーを UDDI パブリッシャーとして登録するなど) との
組み合わせで制御されます。
- UDDI レジストリー・セキュリティーの追加考慮事項
- UDDI レジストリー・セキュリティーの構成に加えて、UDDI レジストリーの振る舞いに影響を与える可能性のある UDDI レジストリー設定は、ほかにもたくさんあります。
その設定の中には、セキュリティーに固有のものもあれば、
セキュリティーの構成時に注意すべき点もあります。
- UDDI レジストリー管理 (JMX) インターフェース
- UDDI レジストリー管理インターフェースを使用すると、UDDI アプリケーションのランタイム構成の検査および管理ができます。このアクションには、UDDI ノードについての情報と活動化状態の管理、プロパティーとポリシーの更新、公開層の制限の設定、UDDI パブリッシャーの登録、および値セット・サポートの制御が含まれます。
標準 Java Management
Extensions (JMX) インターフェースを使用して、UDDI レジストリー管理インターフェースの操作を読み取ったり、呼び出したりすることができます。
- UDDI の Java API for XML Registries (JAXR) プロバイダー
- Java API for XML Registries (JAXR) は、
UDDI (バージョン 2 のみ) および ebXML レジストリーの両方にアクセスするための Java クライアント API です。
J2EE 仕様の一部です。
製品サポートの仕様および標準の完全リストについては、仕様書および API 文書を参照してください。