2010-12-20 13 views
3

私は、ASP.NET MVC 3アプリケーションでホストされているWCF Data Servicesサービスからデータを読み書きするWindows Phoneアプリケーションを持っています。Windows Phone 7アプリケーションからWCF Data Servicesへの認証にOpenIDを使用する方法はありますか?

必要に応じてクライアントとサーバーの両方を構成できます。実際にはOpenIDを使用したいと思います。ユーザーが電話で認証されると、OpenIDに関連付けられたデータをブラウズできるはずです。

クライアントとサーバーをどのように設定すればよいですか?

答えて

0

OpenIDは厄介な選択です。ユーザーが既にアカウントに関連付けられたデータを持っているように思えます。つまり、このデータを設定するために、ある時点でユーザーがサーバーにログインしてから、このデータにアクセスするために同じ資格情報でアプリケーションにログインする必要があります。問題は、クライアントアプリケーションが問題のユーザーを実際に認証したことを確実に確認することです。クライアントアプリケーションが(何らかの形で)ユーザーのOpenIDを持っていると仮定すると、サーバーは暗黙的にクライアントアプリケーションがそれを伝えることができないため、十分ではありません。

私の頭の上から外して、私は、OpenIDでできることは次の通りだと思います。

まず、サーバーでOpenID認証を設定します。次に、クライアントアプリケーションの認証が必要な場合は、WebBrowserコントロールを使用してサーバーURLを指定し、ユーザーがOpenIDプロバイダーで認証できるようにし、ブラウザーが認証情報を持つサーバーに戻るように指示する必要があります。この時点で、クライアントアプリケーションはユーザの認証ステータスを認識しませんが、サーバは自分が誰であるかを認識します。これで、サーバーは、クライアントが使用するための単一使用の認証キーを生成できます。そのキーを含む特別なURLにリダイレクトすることができます。クライアントはそのURLを検出し、キーを抽出し、Webブラウザーコントロールを非表示にし、そのキーを使用してサーバーと通信します。私はそれがそのような認証を行う安全な方法だと信じていますが、私が言ったように、これは私の頭の上からちょうど離れています。

1

アプリでOpenIDを使用するには、プロバイダのサイト(またはリダイレクトできるサイト)に接続する埋め込みWebブラウザコントロールを使用する必要があります。 OpenIDプロバイダがあなたのサイト(ブラウザコントロールに埋め込まれている)に戻ると、必要な識別子をアプリに戻します。

http://blog.markarteaga.com/OAuthWithSilverlightForWindowsPhone7.aspx

+1

で(OAuthの使用)Twitterアプリでこれを行うの一例は、実は、私はちょうどそれを行うライブラリを書いてあります。https://github.com/arktronic/sevenauth – Arktronic

関連する問題