匿名iPhoneで怠惰なログインをサポートするためにrestful_authentication / AuthLogicを拡張するための最良の方法は何ですか?

StackOverflow https://stackoverflow.com/questions/351627

質問

私は、Ruby on Railsのバックエンドに話すiPhoneアプリケーションを構築しています。 Ruby on Railsアプリケーションは、Webユーザーにサービスを提供します。 restful_authenticationプラグインは、迅速かつカスタマイズ可能なユーザー認証を提供するための優れた方法です。しかし、私は、iPhoneアプリケーションのユーザーは、新しい列に格納されている携帯電話の固有の識別子([[UIDeviceデバイス] UNIQUEIDENTIFIER])によって自動的に作成されたアカウントを持っていると思います。ユーザーは、ユーザー名/パスワードを作成する準備ができたら、その後、アカウントはそのままiPhone固有の識別子を残して、ユーザー名とパスワードを含むように更新されます。ユーザーは、自分のユーザー名/パスワードの設定をしたまでウェブサイトにアクセスすることはできないはずです。アプリケーションは、それは識別子です使用して自身を認証することができますので、彼らはしかし、iPhoneのアプリケーションを使用することができます。

これを行うにはrestful_authenticationを修正するための最良の方法は何ですか?プラグインを作成しますか?または生成されたコードを変更する?

どのようなAuthLogicなどの代替フレームワークに関する。 iPhoneのトークン自分のUUIDのにロックされたが、その後、ユーザーが後でユーザ名/パスワードを作成してみましょう?

認証生成取得できるようにするための最良の方法は何ですか
役に立ちましたか?

解決

私はあなたがそれは秘密ではない、それはおそらく推測/予測可能であるとして認証するために、単独で携帯電話の識別子を使用してはならないと思います。誰かがあなたのウェブアプリをハックしたい場合、彼らはあなたのコードを使用する必要がないことを忘れてはいけない - 。彼らは、デバイスIDを推測し、任意のWebクライアントを使用して、ユーザーのデータを台無しにしてみてください。

ユーザー名に似たデバイスIDを扱う必要があります - それは識別と認証のないためです。その後、デバイスID +最初にデバイスを登録するには、このパスワード/コードを送信し、その後、デバイスを認証するために - 私はあなたがそれで行くことに、パスワードを選択するか、さらに良い自動的にランダムなコードを生成するために、ユーザーを取得示唆しています。

どちらか彼らは最終的に1に置き換えられます、またはあなたは4台のiPhoneと周りに行くスティーヴン・フライのような誰かを取得します -

また、一部のユーザーが複数のデバイスを持っていることを賭けることができます。これに対処するため、私はあなたが認証するユーザーのために1回、2回restful_authenticationをインスタンス化するための方法、およびデバイスを認証するための第二の時間を探していることを示唆しています。私はこのプラグインを使用していないが、私はあなただけでこれを実現するために、異なるテーブルパラメータを使用する必要があります期待しています。その後、アプリケーションロジックでユーザーが自分のアカウントで複数のデバイスを関連付けることができます。

のいずれかのデバイスからそれを行う安全にそれを行う、またはデバイスの表示には、デバイスを所有を証明するために、彼らはその後、ウェブアプリに入るランダムなコードを持っているために(これはそれがより多くの苦痛に聞こえる - それは同じプロセスでありますそのiTunesでリンゴの使用、アップルテレビ、およびリモートアプリ - 彼らはそれを行う方法を見て - それはユーザーのためのその驚くべきことではありませんので)。

(また、任意のランダムなパスワードを生成するときに、あなたが基礎として、暗号乱数ジェネレータを使用していることを確認します - おそらく、このためのiPhoneのAPIがある - そうでない場合は、パスワードが予測可能な場合もある)。

他のヒント

あなたは Authlogic のような別の認証スキームを使用しようとしたことがありますか?私は<のhref =「http://matthall.wordpress.com/2008/09/09/a-bort-fork-rails-base-application/」のrel =」を使用することによってだまさが、私は(restful_authenticationはむしろ邪魔に見つけましたnoreferrer nofollowを "> BORT の)ます。

をレールにランダムなパスワードを生成します。リンクテキストの 私は私のプロジェクトのいずれかのRestful_authenticationプラグインを使用しています。 私のユーザーの作成ワークフローの一部として、システムは、新しいユーザーのランダムなパスワードを生成する必要があります。

あなたはUDIDとUDID +サイト全体の定義された塩を使用して生成されたランダムなパスワードを使用してどう思いますか?

のような何かます:

salt = 'afG553Dvbf3'

udid = '1234567890'
pass = Digest::MD5.hexdigest(udid + salt)

そして、それは次回接続したときのためにiPhoneにそのパスワードを送信します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top