2

モバイルアプリケーションを構築しています (PhoneGap/Cordova を使用)。私のアプリを使用するには、クライアントは facebook で認証する必要があります。

私のwcfサービスを保護するために、そのfacebook認証メカニズムを使用したいと思います。私はそれを次のように使用することを考えていました:

最初の登録:

  1. クライアントが facebook にサインインし、アクセス トークンを取得する
  2. クライアントが自分の wcf サービスにアクセス トークンを送信する
  3. 私のサービスでは、アクセス トークンを拡張し (長寿命のトークンを取得するため)、新しいメンバーの新しいレコードを使用して DB に格納します。
  4. 拡張トークンとメンバー ID を使用してクライアントに応答を送信します
  5. クライアントはトークンとメンバー ID をモバイル デバイスに保存します

クライアントがアプリケーションに入るとき:

  1. クライアントが faceebok にリダイレクトする
  2. facebook による認証が失敗した場合 (さまざまな理由が考えられます)、彼は私のアプリケーションを再承認します。
  3. Facebook は新しいトークンを使用してクライアントをアプリケーションにリダイレクトします
  4. (デバイスに格納されているトークンと比較して) トークンが変更されていない場合は、ブレークします。
  5. クライアントは私の wcf サービスに古いトークン + 新しいトークンを送信します
  6. wcf は、受信した古いトークンと db に格納されているトークンを (メンバー ID を使用して) 比較してクライアントを識別し、等しくない場合は例外を発生させます。
  7. 私のサービスでは、アクセス トークンを拡張し (長寿命のトークンを取得するため)、DB に保存します。
  8. 拡張トークンを使用してクライアントに応答を送信します
  9. クライアントは、モバイル デバイスで古いトークンを新しいトークンでオーバーライドします。

モバイル アプリケーションから wcf サービスへのすべての要求に対して:

  1. クライアントはリクエストを送信し、渡される最初のパラメーターは、デバイスに保存されている facebook トークンです。2 番目のパラメーターはメンバー ID です。
  2. wcf は、受信したトークンと db に格納されているトークンを (メンバー ID を使用して) 比較してクライアントを識別し、等しくない場合は例外を発生させます。
  3. リクエストを処理する

結論として、クライアントの識別に facebook トークンを使用しました。さらに、ネットワーク レベルでのセキュリティ保護に SSL を使用できます。これは良いアプローチですか?ご協力ありがとうございました。

4

0 に答える 0