2011-07-20 13 views
3

私は、WIFアイデンティティプロバイダを使用するように設定された多数のWebサイトを用意しています。私は最近、ビジネスロジックをWebアプリケーションからWebアプリケーションサービスアプリケーションに移行しました。これは、他のサイトとは異なる仮想ディレクトリで実行されます。アイデアはブラウザがAJAXyページにデータを入れることです。WCF WebでIdentity Foundationを使用する

問題は、Web APIをセキュリティで保護することです。 WIFシングルサインオンは従来のサイトではうまくいくようです。ユーザーは1つのWebサイトにアクセスし、IDプロバイダーにリダイレクトされ、ログインして、必要なWebサイトにリダイレクトされます。彼らが別のサイトにアクセスすると、アイデンティティプロバイダにリダイレクトされますが、自動的に認証されて2番目のサイトにリダイレクトされるように、FEDAUTHクッキーが存在するためログインする必要はありません。

これは、ブラウザがおそらくGETを行ったときに、JSONが必要なときにApiが呼び出し側のJavaScriptにリダイレクトを返すため、Web APIのシナリオでは機能しません。

Web ApiをWIFで保護することは可能ですか?

答えて

6

あなたが正しいかどうかはわかりませんが、主な問題のようですが、javascript/ajaxはhttpリダイレクトをサポートしていないようです。 可能な解決策は、Ajaxで別々の呼び出しのシーケンスでリダイレクトをシミュレートすることができます:あなたは(ダミーのAJAX呼び出しによって)あなたのウェブAPIサイトで認証されているかどうかを

  1. チェック。

これに該当しない場合:AJAXの上にSTSを呼び出して、「wresult」フォームフィールドの外にセキュリティトークンをつかむ

  1. ウェブAPIサイトでログインサイトを呼び出し、セキュリティトークンを "wresult"データとして渡します。

Dominick Bayerは、休憩サービスを確保することに関するいくつかのブログ記事を書いています。詳細はhttp://www.leastprivilege.com/をご覧ください。 (特にhttp://leastprivilege.com/2009/09/11/adding-a-rest-endpoint-to-a-wif-token-service/および http://leastprivilege.com/2010/05/05/thinktecture-identitymodel-wif-support-for-wcf-rest-services-and-odata/)。

TechDaysからの次のプレゼンテーションもまた興味深いかもしれません:http://www.microsoft.com/showcase/sv/se/details/ffc61019-9756-4175-adf4-7bdbc6dee400(約30分から開始)。

関連する問題