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]