ACS を利用して、Web サイトで Windows アカウント ユーザー (および最終的には他の ID プロバイダーのユーザー) を認証したいと考えています。
ACS に関する多くのリソースを見つけましたが、そのほとんどは、ユーザーを検証するために UI レイヤーで WIF を使用するか、マネージ コードを使用することに関係しています。それは避けたいです。JavaScript/jQuery を使用して ACS に REST ベースの呼び出しを行い、Microsoft アカウント ユーザーのトークンを取得することで、ACS からトークンを取得することはできますか?
私が見た例の 1 つがこのリンクですが、これは ID プロバイダーを利用する代わりにサービス ID を使用しています。 http://code.msdn.microsoft.com/windowsazure/MVC4-Web-API-With-SWT-232d69da
これが私の最終目標です:
- この Web サイトには、UI レイヤー (MVC 4) とサービス レイヤー (MVC WebAPI) の 2 つのレイヤーがあります。これらのレイヤーは両方とも、Azure で互いに独立してスケーリングする必要があります。
- UI レイヤーで ACS を呼び出して、現在のセッションが認証されているかどうかを判断したいと考えています。そうであれば、ACS がクライアントにトークンを返すようにしたいと思います。ステップ3で使用するために、そのトークンをクライアントに保存したいと思います。
- ユーザーがログインしたら、クライアントにサービス層への REST ベースの呼び出しを行わせ、各要求のヘッダーに Microsoft アカウント/ACS ユーザー トークンを渡し、この 2 番目のサービス要求の UI 層を完全にバイパスさせたいと考えています。 . サービス層は、リクエストごとにユーザーを認証します。
- クライアントは、ログイン ページにリダイレクトするか、結果を表示することによって、サービス層からの応答コード (200、401 など) を処理します。
ステップ 2 についてはよくわかりません。クライアント ブラウザは、サービス層に渡すことができるトークンを ACS からどのように取得しますか?
基本的に、Vittorio がここで説明していることを実行したいのですが、Windows 8 ストア アプリの代わりに MVC4 Web アプリを使用したいと考えています。