1. ホーム
  2. ruby-on-rails

Rails API : 認証を実装するのに最適な方法とは?

2023-08-08 07:06:45

質問内容

まだ開発されていないモバイルアプリのAPIを公開するRails 4アプリを書いています。ユーザーは、モバイル アプリから電子メールとパスワードを使用して認証します。

このトピックに関するかなりの量の情報が見つかりましたが、何が重要なのかを見極めるのは困難です。何が古く、何が最適でないかを見分けるのは困難です。HTTP Basic Auth について読みましたが、これはあまり安全ではないように思えますし、HTTP Token-based Auth については、通常の電子メールおよびパスワード認証 (ちなみに私は Devise を使用しています) とどのように組み合わせたらよいかわかりません。

これを実装する方法について、現在のベストプラクティスを知りたいだけです。

どのように解決するのですか?

セキュリティの観点から重要なのは、ユーザーのメールアドレスとパスワードを一度トークンに交換し、その後のリクエストにはそのトークンを使用することです。ということです。

  1. バグや攻撃によってユーザーのパスワードが流出する可能性があるため、クライアント アプリにユーザーのパスワードを保持する責任を負わせたくない。
  2. サーバーが発行するトークンでは、必要に応じてトークンを失効させることができます。たとえば、盗難にあったデバイスをロックアウトしたり、不正な動作をする API クライアントをブロックしたりすることができます。

これを実現する方法はたくさんあり、複雑さのレベルもさまざまです。

これは非常に新しいチュートリアルで、Railsでトークンベースの認証を使用してAPIを作成するための徹底的なウォークスルーがあります (Devise は使用していませんが、コンセプトを理解するためにはまだ適切です)。 https://labs.kollegorna.se/blog/2015/04/build-an-api-now/