LoginSignup
0
0

More than 1 year has passed since last update.

[Rails] Basic認証の実装

Posted at

記事の概要

 こちらの記事でアプリのHerokuデプロイした続きです。Railsアプリへのアクセスを制限するためにBasic認証を実装する。

Basic認証とは

 Basic認証とは、HTTPで定義される認証方式の一つで、基本認証ともいう。サーバーとの通信が可能なユーザーとパスワードをあらかじめ設定しておき、それを知っているユーザーだけがアプリにアクセスできるようにする。

実装方法

① Railアプリへの導入

 authenticate_or_request_with_http_basicメソッドを利用する。application_controllerにプライベートメソッドとして定義し、before_actionで呼び出す。
 任意のユーザー名とパスワードをそれぞれusername, passwordとして設定するが、これらをコードに直接記述してしまうと公開リポジトリで読まれてしまう。したがって下記のように環境変数に設定してそれを読み込むようにする。

app/controllers/application_controller.rb
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_USER"] && password == ENV["BASIC_AUTH_PASSWORD"] # 環境変数を読み込む
    end
  end
end

② 環境変数の設定

 上記の環境変数の設定を行う。ローカル環境、本番環境(Heroku)それぞれに設定する。

 ローカル環境

 ログインシェルの設定ファイル、zshやbashに定義する。今回はzshの場合。
まず下記コマンドでzshをテキストエディタで開く。「vim」とは、サーバー上で使用できるテキストエディタ。

% vim ~/.zshrc

 zshの中に以下のようにユーザー名とパスワードの記述を追加する。

export BASIC_AUTH_USER='任意の名前'
export BASIC_AUTH_PASSWORD='任意のパス'

 最後に、sourceコマンドでzshファイルに記述した内容を実行する。

% source ~/.zshrc

 本番環境(Heroku)

 Heroku上に環境変数を設定する。ターミナルでコマンド実行。

% heroku config:set BASIC_AUTH_USER="任意の名前"
% heroku config:set BASIC_AUTH_PASSWORD="任意のパス"

③ Herokuへ変更をPush

 コードを変えたので、コミットとHerokuへのPushを忘れずに。

# ターミナルで実行
% git add .
% git commit -m "Basic認証の導入"
% git push heroku master
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0