2011-08-17 14 views
3

開発するWebサービスを使用するアンドロイドアプリを開発しています(私はRESTFul Webサービスの使用を考えています)。 と接続を保護したいアプリケーションとサーバーの間にも私はユーザーを認証する必要があります..ユーザーを認証するWebサービスを消費するAndroid APP

私の問題は接続を保護するために私はそれを行うための最善の方法はSSL(https)を使用することだと私は間違っていると思う?

ユーザーを認証して、別のユーザーとしてWebサービスを使用できないことを確認する "最良の方法"がわかりません。 私は認証(ログイン、パス)メソッドトークンを返すwebサービス上で。そして、認証を必要とする操作の場合、ユーザーはそのトークンをパラメータとして渡す必要があります。これは、これを行う良い方法ですか?このような状況でユーザーを認証するために使用される最も一般的な手法は何ですか?

トークンベースの認証が良いアイデアの場合、どのようにトークンを生成する必要がありますか?

この長いテキストのため申し訳ありません

..

すべてのヘルプはあなたが永久に続い一度ログインするためにユーザーが必要になりますトークンベースのOAuthを実装し、必要がある

おかげ

答えて

2

便利になりますアクセスしてください。

すでにユーザー認証サービスを提供しているGoogle App Engineを使用できます(あなたのAndroidユーザーは既にGoogleアカウントを持っている可能性が高いです)。これは多くのオプションの1つに過ぎません。

また、Amazon's Identity Access Management (IAM)を調べると、Webサービスにアクセスできるユーザーを管理し、それに応じて権限を付与できます。

SSL(https)を使用するのが最善の方法だと私は間違っていますか?

これは、特定の種類の悪意のある使用を防ぎますが、すべてを防ぎません。人々が電話であなたのデータベースにアクセスし、そのような方法で資格情報を取得することを妨げるものはまだありません。

+1

ありがとうございました。私は実際にOAuthがどのように機能しているのかをもっと理解し、何を使うべきかを決める必要があると思っています。 SSLについては、クライアント/サーバ間の接続を保護し、デバイス自体のデータを保護しないことが目的です。 もう一度、ありがとう;) – BraCa

7

あなたがそのパスを下る前にOAuthのような最新の標準を理解していることを確認してください。ほとんどのOAuthフローは、Webブラウザを介してサーバにログインしているユーザを中心にしています。これにより、モバイルアプリのユーザーエクスペリエンスが非常に悪くなる可能性があります。この標準では代替案が認められている。ここにはa decent introductionがあります。

独自のauthN/authZを実装する代わりに、Google、Facebook、Twitterなどの既存のIDプロバイダを使用することもできます。 Androidの場合、AccountManagerを使用してGoogle認証トークンをリクエストできます。これは通常、ユーザーがAndroidマーケットにアクセスするにはGoogleアカウントにログインする必要があるために機能します。とにかく、これはユーザーにあなたのアプリに許可を与えるよう促します。 Googleの認証トークンを使用して、独自のトークンを使用してサービスにログインすることができます。ログインは本質的に、Googleのトークンが有効であることを(Googleのサーバーに問い合わせることによって)確認してから、あなた自身のトークンを発行してWebサービスへの呼び出しに使用するサーバーになります。 Googleを気に入らない場合は、Facebook SDKなどを使用できます。

トークンに使用するものは... OAuthの仕様にも同様の内容があります。ランダムな文字列や暗号化された複雑なもの()のような簡単な操作を行うことができます。

+0

Nice Answer。私はOAuthを "流行の基準"と呼んでいませんが。ユーザーが吸うWebViewで認証する必要があるのは事実ですが、シームレスに実装する方法があります。 –

+0

私はOAuthとgoogle/facebookのアイデンティティプロバイダーについて詳しく知り、私の問題に最もよく合うものを選んでください。 私を助けてくれてありがとう;) – BraCa

関連する問題