WCF データサービスチーム (Data Service Team) は最近,クライアント/ODataサービス認証で使用可能な認証機構のシリーズを続けている。OData は,ATOMPub プロトコルに ATOM リソースのクエリおよび更新に関する拡張を追加した実装の名称だ。OData Web サイトによれば,
オープンデータプロトコル (Open Data Protocol,OData) は,現在アプリケーションごとにロックされているデータをその密室から解放する,データのクエリと更新のための Web プロトコルです。HTTP,Atom Publishing Protocol(AtomPub),JSON などの Web 技術を基盤として構築され,様々なアプリケーションやサービス,データストアの情報へのアクセス手段を提供します。[...] ODataはリレーショナルデータベース,ファイルシステム,コンテンツ管理システム,その他一般的な Web サイトなど,さまざまなソースの情報の公開とアクセスに使用されます。
チームのプログラムマネージャである Alex James 氏は,フィールドでの認証に関する疑問に答えるため,一連の資料を公開している。
- OData プロトコルを介して認証を 'トンネル' する方法は?
- WCF データサービスクライアントとサービスライブラリのどのフックを使えばよいのか?
氏の考えでは,答は状況によって異なる - 対処すべき課題がそれぞれ違うからだ。そのため氏は質問をひととおり用意して,それぞれに対して適切な認証オプションを検討する,という形式で回答を行っている。
- OData Consumer から OData Producer にログオンする方法は?
- データベースクエリをコンテキスト下で実行するために,WCF データサービスが OData Consumer としてふるまう方法は?
- OAuth を認識する OData Producer に OData Consumer を組み込むにはどうすればよいか?
- 企業ドメインとクラウドにホストされた OData Producer を連携させる方法,すなわち,企業アカウントの下で実行されるアプリケーションから OData Producer へシームレスにアクセスすることは可能か?
一連の資料で扱っているシナリオの抜粋を以下に紹介する。
Windows 認証 (Windows Authentication) - Windows の認証情報を利用する認証処理を扱う。ネットワークが Windows ベースのサーバとクライアントで同質的に構成されているような,イントラネット-企業のシナリオを主としてサポートする。
カスタム基本認証 (Custom Basic Authentication) - インフラレベル(IIS)で提供されている,ユーザ名/パスワードによる基本的なチャレンジ・レスポンス認証では不足する状況をカバーする。ユーザ/パスワード情報がデータベースに保存されている場合などである。
フォーム認証 (Form Authentication) - IIS 上の ASP.net 環境において,フレームワークレベルの防御手段を行うフォーム認証をカバーする。
クライアントサイドフック (Client Side Hooks) - Windows認証 や Basic 認証が適合しないクライアント処理に対処する。"通常は認証プロパティが適用できないような認証方式を使用している場合,例えば OAuth WRAP に対して適用します。クレームベース認証(Calims Based Authenticatin) などを利用する場合には,要求のレベルまで戻って,ヘッダを直接操作する必要があります。"
サーバーサイドフック (Server Side Hooks) - IIS,WCF,カスタムホストなど,様々な OData サービスのホスティングオプションをカバーする。認証処理の実装方法は,それぞれのホストに対応して検討する必要がある。
チームはもちろん,"検討すべき認証シナリオ" に関するフィードバックを求めている。RESTful なスタイルで,なおかつセキュアなデータの開示方法として OData サービスの使用を検討しているならば,このシリーズ は検討の価値があるだろう。