Basic 認証の使い方
コントローラで before_action
を設定して、authenticate_or_request_with_http_basic
メソッドを使う。
class ApplicationController < ActionController::Base before_action :basic_auth private def basic_auth authenticate_or_request_with_http_basic do |username, password| username == ENV["BASIC_AUTH_USERNAME"] \ && \ password == ENV["BASIC_AUTH_PASSWORD"] end end end
注意点
- HTTPS 化していない場合には Basic 認証のユーザー名・パスワードは平文でネットワークを流れる。
public
ディレクトリから配信するコンテンツには認証はかからない。- ソースコードに直接パスワードを埋め込むことは、誤って公開リポジトリに
push
する危険性があるので止めておくべき。→ 環境変数に設定したユーザー名・パスワードを参照する。 - Nginx や Apache などリバースプロキシあるいは Web サーバーで Basic 認証をかけた方がセキュリティを保ちやすい。
参考:
Rails で Basic 認証の導入 完全版 – Qiita
今更だけど Rails アプリケーションに Basic 認証を設定した – Qiita
Rails で Basic 認証とユーザー認証の二重認証を実装 – Qiita
Rails で Basic 認証する方法と注意事項 | 東京伊勢海老通信
Basic 認証 (アプリケーション全体) | TakayukiKoyama.com
Rails で Basic 認証を設定する | kzy52’s blog
ActionController::HttpAuthentication::Basic
参考:
ActionController::HttpAuthentication::Basic::ControllerMethods | Ruby on Rails API [Official]