2012-01-21 2 views
4

私はACS経由のUserName認証を使用するWCFサービスを持っています。これはサービスIDを使用しているときにはうまくいきますが、Windows Live ID資格情報を使用しようとすると、次のエラーが発生します。Windows Live IDとのACS統合を介してWCFサービスを認証するにはどうすればよいですか?

System.ServiceModel.FaultException:ACS10002:SOAPボディの処理中にエラーが発生しました。 ACS50012:認証に失敗しました。 ACS50026:名前が '[email protected]'のプリンシパルは、既知のプリンシパルではありません。

残念ながら、WCFサービスでWindows Live IDを使用する方法の例はまだ見つかりませんでした。私が見つけることができる唯一の例は、複数のIDプロバイダをASP.NETまたはMVC Webサイトと統合することに焦点を当てているようです。

この点で任意の助けいただければ幸いです....

答えて

3

ACSは、直接あなたのLive IDのユーザー名とパスワードを認証しません。 ACSはLive IDのフェデレーションプロバイダとして機能しますが、これは間もなく行われるため、Windows Live IDによって発行されるトークンのみを消費します。 ACSは、パッシブ(ブラウザリダイレクト)ベースのシナリオでは、すぐにLive ID認証をサポートしますが、WCFサービスの場合は、代わりにLive Connect APIを使用することを検討してください。

サービスでLiveIDを使用するには、クライアントはまずLiveIDに自身を認証し、LiveID発行のトークンをWCFサービスに提示します。しかし、あなた自身を勇気づけて、このすべてを設定するために飛び抜けるいくつかのフープがあるでしょう。

Live Connect APIを使用するには、Live IDを持つアプリケーションとしてWCFサービスを登録します。あなたのWCFサービスを消費するクライアントは、WebベースのログインページとLive IDがプロンプトするユーザー同意ページを処理できる必要があります。以下のドキュメントは良いスタート

http://msdn.microsoft.com/en-us/library/hh243641.aspx

http://msdn.microsoft.com/en-us/library/hh243647.aspx

http://msdn.microsoft.com/en-us/library/windows/apps/hh465098.aspx

ある次の問題は、あなたがライブ接続から取得しますトークンがJWT(JSONウェブトークン)形式になりますです。ライブ接続から別のトークン形式を要求できるかどうかはわかりませんが、WCFサービス認証がWIFベースである場合は、SAMLトークンが予想されます。 JWTはWIFがまだサポートしていないかなり新しいトークン形式ですので、JWTトークンを理解しているサービスでWIF SecurityTokenHandlerを設定する必要があります。上の3番目のリンクにはJWTを読むためのコードがあります。これは少なくとも開始です。

+0

うわー!あなたの詳細な役に立つ返信をありがとう.... –

1

上記のユースケースにID委任を使用したこの記事には、 http://social.technet.microsoft.com/wiki/contents/articles/7286.asp-net-relying-party-to-wcf-soap-relying-party-delegation-with-windows-live-id.aspx が表示されます。成功するかどうかは投稿します。楽しい!

+1

ようこそスタックオーバーフロー!将来的にサイトが古くなる可能性があるので、単に別のサイトへのリンクを回答として与えるべきではありません。代わりに、この回答の「編集」リンクをクリックし、そのページのソリューションの重要な部分をここに含めます。参照:http://meta.stackexchange.com/q/8259 –

+0

上記の実装は、魅力的に機能します。そして説明は素晴らしいです。ちょうど正確にそれに従ってください。 – Rucheeg

関連する問題