次の当事者を考えると:
ブラウザベースのクライアント
ASP.NetMVC4WebアプリケーションASP.NetWebAPI
サービス
セキュリティトークンサービス(STS)、つまりThinktecture IdentityServer
(注:WebアプリケーションとWebAPIサービスは異なるボックスに存在します)
これと同様のフローを取得したいと思います。
ユーザーがWebAppに移動すると、アプリケーションはリクエストに有効なトークンを認識せず、STSで認証されるようにユーザーをリダイレクトします。ユーザーはSTSにログインし、認証が成功するとWebAppにリダイレクトされます。WebAppは有効なトークンを確認し、ユーザーにアクセスを許可します。ユーザーは、WebAPIへのサービス呼び出しを必要とするWebAppで操作を実行しようとします。WebAppは、サービスリクエストでユーザートークンを渡します。WebAPIサービスは、トークンを確認し、アクセスを許可せずにエラーを返すか、ユーザーに代わって要求を承認して結果を返します。
さらに、クライアントがAJAX呼び出しを介してWebAPIサービスに直接サービス呼び出しを行えるようにしたいと思います。
これまでのところ、フローをWebアプリケーションでSTSにリダイレクトして戻すことができますが、トークンをWebアプリからWeb APIサービスに渡すにはどうすればよいですか?
また、JavaScriptクライアントにAJAX呼び出しでトークンを渡すようにするにはどうすればよいですか?