2012-04-10 11 views
7

私は、ASP.NET Web APIテンプレートを使用してサーバーを作成し、残りのサービスを実装しています。このサーバーは、モバイルゲームのバックエンドになり、ユーザーの最高記録、進捗状況などの情報を格納します。私はいくつかのアプローチ(this,this、およびthis)を見てきましたが、どのようなアプローチをとるべきかを決めるのは難しいです。私の場合、主にスコアの詐欺を防止するため、各ユーザーアカウントには限定された情報(電子メールの外に)が含まれているためです。理想的には何が起こっているのでしょうか。クロスプラットフォームのモバイルアプリケーションからのRESTとASP.NET Web APIを使用した認証と承認

  1. ユーザーは
  2. ユーザーがカスタムユーザ名のオプションを与えられ、
  3. ユーザーが複製されていないので、これはランダムに生成された6桁の暗証番号を(与えられているサーバーによって確認された初めてのアプリを開きますそう、彼らは別の携帯電話上で同じアカウントを使用することができます)
  4. ユーザーが新しいユーザーがサーバー上に作成された電子メールアドレス
  5. に入る(サーバはアカウントが私のクライアントアプリケーションの有効なインスタンスによって作成されたことを確認する)
  6. ユーザーはゲームをプレイし、結果をアップロードします(Via basic authentication?
  7. ユーザーは、グローバル結果(ユーザー固有のものではありませんGETメソッドの保障なし)

を表示することができ、私はトラブル認証(無ブラウザのログイン画面など)や、許可の種類を絞り込んを抱えています使用する方法。どんな助けでも大歓迎です。

-Tamas

+0

おそらく、この場合、基本認証で十分でしょうか?しかし、私はまだ誰かが有効なクライアントを介して残りのAPIにアクセスしていることを確認する方法が不明です。 – tamaslnagy

答えて

5

基本認証を使用している場合でも、HTTPSを使用することができます。 HTTPSを使用している場合は、クライアント証明書を使用してクライアントも検証できます。有効な証明書を持つクライアントにのみアクセス権が与えられます。このAPIを他のコンシューマに公開しておらず、あなたが開発したクライアントによってのみ使用される場合は、WS-SecurityとWCFを検討することができます。裸のオートバイドライバーをメタファーとして使用している違いの面白い記述があるhere

+0

複数の言語(Java、Obj-C、C#/ .NET)を使用するので、ws-security/wcfメソッドが機能するかどうかわかりません。クライアント証明書方式はクロスプラットフォームですか? – tamaslnagy

+0

クロスプラットフォームの場合は、RESTを使用することをおすすめします。クライアント証明書はクロスプラットフォームです。 –

+0

いいですね。私はそれを調べます。また、初期認証が基本認証システムでどのように行われたか、つまり入力されたユーザー名とパスワードがまだサーバーデータベースに登録されていない場合は、わかりません。 – tamaslnagy

1

それは異なるクライアント/デバイスからだ場合は、トークンベースの認証のようなものは、あなたのために働くかもしれません。

アイデアは簡単です。あなたのWebサービスには認証方法があります。このメソッドは、資格情報のチェックと「トークン」の発行を担当します。 SHA1やMD5のようなシンプルな構造で、それ以降のすべてのクライアントが使用しています。

クライアントが認証されると、セッションの全期間トークンが保存されます。残りのWebサービスメソッドは、SaveScoreのようにパラメータとしてトークンを受け入れるだけです。彼らはその後、それが有効かどうかをチェックする責任があります。トークンが有効でない場合、コールはサービスされていません。

+0

可能であれば、私はトークンベースの方法よりも基本認証を好むでしょう。 – tamaslnagy

関連する問題