Ruby: 認証gem ‘Rodauth’ README(翻訳)

こんにちは、hachi8833です。 今回は、「Railsアプリの認証システムをセキュアにする4つの方法」でも取り上げられていたRodauthのREADMEを翻訳しました。 現時点では、残念ながらRodauthをRailsで使うためのroda-rails gemがRails 4.2までしか対応していないのと、ルーティングにDSLを使うことから、おそらくRails 5で使うには一手間かける必要がありそうです。 しかし、認証のセキュリティを考えるうえで参考になる情報が多く、ドキュメントの質が(少なくともDeviseと比べて)非常に高いのが特徴です。大きな概要をまず示し、必要な概念も適宜示しながら、先に進むに連れて詳細に説明するという書き方が見事です。 さらに、READMEから読み取れる筋のよい認証システム設計も参考になると思います。パスワードハッシュの保存場所を完全に隔離した上で可能な限り自由度を高めている点や、機能ごとにカラムを足したり減らしたりするのではなくテーブルを足したり減らしたりする点など、学ぶところが多そうです。 概要 MITライセンスに基いて翻訳・公開します。 リポジトリ: jeremyevans/rodauth 原文: README.rdoc 原文更新日: 2017/10/17 公式サイト: http://rodauth.jeremyevans.net/ http://rodauth.jeremyevans.net/より Rodauth README(翻訳) RodauthはRackアプリケーション向けの認証・アカウント管理フレームワークです。ビルドにはRodaとSequelを使っていますが、他のWebフレームワーク・データベースライブラリ・データベースでも利用できます。PostgreSQL・MySQL・Microsoft SQL Serverをデフォルト設定で使うと、データベース関数経由でのアクセスが保護されるようになり、パスワードハッシュのセキュリティを強化できます。 設計上のゴール セキュリティ: デフォルト設定で最大のセキュリティを利用できること 簡潔性: DSLで簡単に設定できること 柔軟性: フレームワークのどの部分でも機能をオーバーライドできること 機能リスト ログイン ログアウト パスワードの変更 ログインの変更 パスワードのリセット アカウントの作成 アカウントの無効化 アカウントのバリデーション パスワードの確認 パスワードの保存(トークン経由での自動ログイン) ロックアウト(総当たり攻撃からの保護) OTP (TOTP経由の2要素認証) リカバリーコード(バックアップコード経由の2要素認証) SMSコード(SMS経由の2要素認証) ログイン変更のバリデーション(ログイン変更前の新規ログインバリデーション) アカウントの許容期間(ログイン前のバリデーションを不要にする) パスワードの許容期間(パスワードを最近入力した場合はパスワード入力を不要にする) パスワードの強度(より洗練されたチェック) パスワードの使い回し禁止 パスワードの有効期限 アカウントの有効期限 セッションの有効期限 … Continue reading Ruby: 認証gem ‘Rodauth’ README(翻訳)