EWS アプリケーションと Exchange のアーキテクチャ
EWS が Exchange アーキテクチャで動作する仕組みと、EWS が依存するプロトコルについて説明します。
Exchange Web Services (EWS) は、Exchange Online、Office 365 の一部としての Exchange Online、Exchange 2007 以降のオンプレミス バージョンの Exchange からのメール メッセージ、会議、連絡先などのメールボックス アイテムにアプリケーションがアクセスするためのクロスプラットフォーム API です。 EWS アプリケーションは、SOAP ベースの XML メッセージで要求を送信することによって、ローカルまたはリモートでメールボックス アイテムにアクセスできます。 SOAP メッセージは、アプリケーションとサーバーの間で送信されるときに、HTTP メッセージに埋め込まれます。つまり、アプリケーションが HTTP 経由で XML を投稿できる場合に限り、EWS を使用して Exchange にアクセスできます。
Exchange のアーキテクチャ概要
次の図は、Exchange 2013 および Exchange Onlineと通信するときに EWS アプリケーションで使用される認証方法と通信パスを示しています。 EWS アプリケーションの観点からは、通信パスは同一であり、認証方法はわずかに異なります。メインの違いは、Exchange バックエンドに対する可視性です。
図 1. EWS アプリケーションと Exchange オンプレミス アーキテクチャ
図 2 は、Exchange Online と通信するときに EWS アプリケーションで使用される、図 1 に示したのと同じ通信パスを示しています。
図 2. EWS アプリケーションと Exchange Online アーキテクチャ
図に示されているコンポーネントは次のとおりです。
EWS アプリケーション - これは、クライアント、ポータル、またはサービス アプリケーションであり、クライアントまたは Exchange オンプレミスのクライアント アクセス サーバー上にインストールできます。 EWS マネージ API を使用して EWS アプリケーションを開発する場合、EWS マネージ API アセンブリをクライアントにインストールし、アプリケーションで再配布する必要があります。
SOAP XML メッセージ - SOAP エンベロープ内の XML メッセージであり、クライアント アクセス サーバー上の Services.wsdl ファイルに準拠した HTTP/S メッセージに埋め込まれています。 HTTPS は、Exchange オンプレミスで推奨されており、Exchange Online では必須です。
認証方法 - EWS メッセージには、基本認証、NTLM 認証 (Windows 統合認証) または OAuth 認証の情報が HTTP ペイロードの一部として含まれます。
ロード バランサー - ロード バランサーは、クライアント アクセス サーバー アレイ内のクライアント アクセス サーバーにメッセージを配信します。 このコンポーネントは、Exchange オンプレミス アーキテクチャでのみ表示されます。
クライアント アクセス サーバー アレイ - クライアント アクセス サーバーは、クライアント アクセス サーバー アレイと呼ばれる負荷分散グループに編成されています。 個々のクライアント アクセス サーバーは、認証、制限付きリダイレクト、およびプロキシ サービスを提供します。 クライアント アクセス サーバー自体はデータのレンダリングを実行しません。クライアント アクセス サーバーにはキューに入れられるデータまたは格納されるデータは何もありません。これは、最小限の機能を備えたステートレス サーバーであり、要求を認証し、自動検出を実行してから、メールボックス サーバーへの要求をプロキシ処理します。 クライアント アクセス サーバーは、ユーザーのデータをホストしているメールボックス サーバーと 1 対 1 のリレーションシップを維持します。 HTTP プロトコル (自己署名入りの証明書を使用して SSL を経由してセキュリティで保護されます) は、クライアント アクセス サーバーとメールボックス サーバーの間で使用されます。 このコンポーネントは、Exchange オンプレミス アーキテクチャでのみ表示されます。
自動検出サービス - 自動検出サービスは、Active Directory Domain Services (AD DS) にアクセスすることでサービス検出を実行し、ユーザーのデータのアクティブ コピーをホストしているメールボックス サーバーのメールボックスのバージョンと場所を取得します。
EWS サービス — EWS サービスは、Services.wsdl、Messages.xsd、Types.xsd、EWS マネージ API アセンブリの 3 つのファイルによって記述されます。 Services.wsdl はクライアントとサーバーの間のコントラクトを記述し、Messages.xsd は要求と応答の SOAP メッセージを定義し、Types.xsd は SOAP メッセージで使用される要素を定義します。 Messages.xsd と Types.xsd には常に最新バージョンのスキーマが含まれていますが、以前のバージョンのスキーマは存在します。 Services.wsdl、Messages.xsd、Types.xsd はクライアント アクセス サーバーで使用できますが、実際にはスキーマ検証には使用されません。これらは参照専用として提供されます。 EWS マネージ API アセンブリは、サーバー側の EWS クライアント アプリケーション用に提供され、クライアント アクセス サーバーだけでなく、すべてのExchange Serverロールにデプロイされます。 このコンポーネントは、Exchange オンプレミス アーキテクチャでのみ表示されます。
機能が使用可能かどうかは、アプリケーションが対象とする EWS のスキーマのバージョン次第です。 EWS のスキーマは後方互換性と前方互換性を持つため、Exchange 2007 SP1 などの以前のバージョンのスキーマを対象とするアプリケーションを作成する場合、アプリケーションは Exchange 2010 SP2 のサービスや Exchange Online など、後のバージョンのスキーマでも動作します。 機能および機能の更新はスキーマによって決定されるため、クライアント アプリケーションに実装する EWS 機能を対象としているもののうち、最も古い共通のコード ベースを使用することをお勧めします。 多くのアプリケーションは Exchange2007_SP1 バージョンを対象にできます。なぜなら、Exchange 2007 SP1 のスキーマには、Exchange のストアのアイテムやフォルダーを操作するための Exchange のほとんどすべての主要機能が含まれているためです。 詳細については、EWS のクライアント機能を参照してください。
データベース可用性グループ (DAG) — メールボックス サーバーは高可用性 DAG に編成され、1 つ以上のデータセンターに展開できます。 メールボックス サーバーにはメールボックス データベースが含まれており、そのサーバー上のアクティブなメールボックスのすべてのアクティビティが処理されます。 データを処理、レンダリング、および格納するすべてのコンポーネントは、メールボックス サーバー上にあります。 クライアントはメールボックス サーバーに直接接続しません。すべての接続は、クライアント アクセス サーバーによって処理されます。 このコンポーネントは、Exchange オンプレミス アーキテクチャでのみ表示されます。
Exchange Online および Office 365 の一部としての Exchange Online - クラウド ベースのサービスとして Exchange の機能を提供するホスト型のメッセージング ソリューション。
EWS アプリケーションが Exchange ストアから情報を要求すると、SOAP 規格に準拠した XML 要求メッセージが作成され、Exchange サーバーに送信されます。 Exchange サーバーは要求を受信すると、クライアントによって提供される資格情報を検証し、要求データの XML を自動的に解析します。 次に、サーバーは、要求された厳密に型指定されたオブジェクトとそのプロパティを表す XML データを含む SOAP 応答を作成します。 XML データは、HTTP 応答でアプリケーションに送り返されます。 アプリケーションは、XML を逆シリアル化し、そのデータを使用して厳密に型指定されたオブジェクトを再構成します。
EWS アプリケーションでサポートする必要があるプロトコルおよび規格
Exchange サーバーと通信するには、EWS アプリケーションは次のプロトコルと規格をサポートしている必要があります。
表 1. プロトコル
プロトコル | 使用方法 |
---|---|
HTTP/S |
クライアントがインターネット上にあるかイントラネット上にあるかにかかわらず、EWS アプリケーションがネットワーク経由で Exchange データベースのデータにアクセスできるようにします。 |
SOAP 1.0 |
メッセージング ペイロードの周囲にエンベロープを形成します。 EWS では、SOAP エンベロープのさまざまな部分を使用して SOAP プロトコルを実装し、さまざまな機能を実現します。 SOAP ヘッダーは、偽装する場合や、バージョン管理データを提供する場合に使用されます。 SOAP 本体は、実行する操作および操作に送信されるデータについての情報を提供します。 SOAP は、呼び出す操作を記述する WSDL に依存します。 |
WSDL 1.0 |
Services.wsdl ファイルで、EWS 操作の呼び出しに使用されるバインド、操作、プロパティについて記述します。 このファイルは、参照されるスキーマ ファイルと共に、EWS アプリケーションと Exchange サーバーの間のコントラクトを構成し、ベンダー固有のツールと共に使用され、プラットフォーム固有のアプリケーションを作成します。 WSDL ファイルは、Web サイトのルートにある、EWS 仮想ディレクトリに配置されています。 |
トランスポート層セキュリティ (TLS)/SSL |
インターネットやイントラネット上にセキュリティで保護された Web 通信を提供します。 TLS を使用すると、アプリケーションはサーバーを認証でき、オプションでサーバーが EWS アプリケーションを認証できます。 また、通信の暗号化によってセキュリティ チャネルが提供されます。 TLS は最新バージョンの SSL (Secure Sockets Layer) プロトコルです。 |
XML/XSD |
Exchange サーバーとクライアント間で情報を交換するための汎用のメッセージ形式を提供します。 XML は、複雑な Exchange データベースのデータを、定義された構造でクライアント アプリケーションに提供します。 XML の長所は、EWS アプリケーションおよびサーバーが共通のプラットフォームを共有しない場合でもデータを交換できるという点です。 |
さらに、EWS アプリケーションは、以下の認証規格をサポートする必要があります。
Exchange オンプレミスを対象とするアプリケーションに対する SSL 経由の基本認証。
Exchange オンプレミスを対象とするアプリケーションに対する SSL 経由の NTLM 認証。
OAuth 2.0 トークン認証。Exchange Online、信頼されたパートナー アプリケーション、Lync Server 2013 および SharePoint Server 2013 との相互運用性を対象とするアプリケーションの場合。