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 認証とユーザー認証の二重認証を実装 – Qiita

Rails で Basic 認証する方法と注意事項 | 東京伊勢海老通信

Basic 認証 (アプリケーション全体) | TakayukiKoyama.com

Rails で Basic 認証を設定する | kzy52’s blog

ActionController::HttpAuthentication::Basic

参考:

ActionController::HttpAuthentication::Basic::ControllerMethods | Ruby on Rails API [Official]

タグ:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です