Silverlight、WP7、および ASP.NET MVC クライアント アプリケーションをいくつか持っています。ほとんどのアプリケーションでは、アプリケーションへの匿名アクセスを許可していますが、ログイン時のユーザーの資格情報に基づいてさまざまな機能を保護しています。すべてのクライアントは、データ アクセスとビジネスに共通のバックエンド サービス アプリケーションを使用しています。認証と承認のためにユーザーの資格情報を必要とする処理。
現在、すべてのクライアント アプリケーションでフォーム認証を使用しており、フェデレーション ID とクレーム ベースのモデルを使用するようにアーキテクチャを移行したいと考えています。パッシブ フェデレーションはオプションではありません。
次の流れを探しています。
- ユーザーはログイン ダイアログをトリガーし、ユーザー名とパスワードを入力して [OK] をクリックします。
- バックグラウンドで、アプリケーションは認証のために既存のサービス アプリケーションでアクティブな STS サービスを呼び出します。
- このサービスは実際にはフェデレーション STS であり、ADFS である場合とそうでない場合がある (アクティブな) IP_STS に呼び出しを渡します。
- IP がトークンを FP に返すと、FP はクライアント アプリケーションにトークンを返す前に、サーバー データ ストアからの追加のクレームでトークンを変更します。
- クライアント アプリケーションは、承認チェックのためにトークンをメモリ内に保持します (たとえば、Thread.CurrentPrincipal 内)。
- クライアントは、サービス アプリケーションで他のサービス操作に要求を行うときにもトークンを渡します。
- これらのサービス操作は、トークンを使用してリクエストを認証/承認します。
これは、私が見つけたどの記事やサンプルとも大きく異なるユース ケースです。誰かがガイダンスを提供したり、正しい方向に向けたりすることはできますか?