次のシナリオがあります
トークンを発行する STS があり、それを使用して ASP.NET アプリケーションをフェデレーションしました。このアプリケーションは、必要な機能を実行するために WCF サービスを呼び出します。
しかし、ASP.NET アプリケーションで ClaimsPrinicipal.Current を調べると、STS へのアクセスに使用したユーザーのクレームに正しく対応していることがわかります。しかし、ASP.NET アプリケーションからサービスを呼び出して ClaimsPricipal.Current を調べると、null に等しいことがわかりました。
回避策として、ASP.NET アプリケーションから ClaimsPricipal.Current を渡し、Thread.CurrentPricipal を WCF サービスに配置しました。
しかし、それが正しいアプローチだとは思いません。
だから私の質問は:
1) ASP.NET クレーム プリンシパルが WCF プリンシパルと異なるのはなぜですか? 2)アクセストークンを使用してWCFサービスにもアクセスする正しいアプローチは何ですか?