0
0

More than 1 year has passed since last update.

Basic認証の導入(環境変数設定の流れ)

Last updated at Posted at 2022-10-04

目的

アプリケーション(サーバー)へのアクセスを制限するため、Basic認証(ユーザー名とパスワードが無いとサーバーにアクセスできなくさせる)を導入する。

導入の流れ

1.authenticate_or_request_with_http_basicメソッドを実施

#Basic認証によるログインの要求は、すべてのコントローラーで行いたいため、
 Basic認証の処理をapplication_controller.rbのprivate以下にメソッドとして定義し、before_actionで呼び出す。

before_action :basic_auth


private

def basic_auth
  authenticate_or_request_with_http_basic do |username, password|
    username == 'admin(任意)' && password == '2222(任意)'
  end
end

2.Basic認証のコードを編集

上記1のコードでは、ログインにユーザーネームとパスワードが記載されており、セキュリティ面で不安が残るため、環境変数を利用する必要がある。
ただ、Basic認証は完全に信頼できる認証方法でないと知っておく必要がある。
(HTTP通信で定義されている仕様上、ユーザー名とパスワードが通信経路上にそのまま送られるため、漏洩のリスクがある。また、ログアウトの概念が定義されていないため、もし必要になる場合は自力で実装する必要がある。などが理由)

Basic認証に関する環境変数は、シェルと呼ばれるプログラムを用いて、定義する。
シェル:ターミナルとOSを繋ぐ窓口役

シェルを用いて、zshもしくはbashと呼ばれるファイルに環境変数を定義する。
zsh:ログインシェルと呼ばれるもので、プログラムを実行する時に、ユーザーの要求に一番最初に対応する役割を担う。隠しファイルなので、特別な設定なしではFinderなどには表示されない。環境変数を記載する場所は、設定ファイルである「.zshrc」の中。
bash:zsh同様、ログインシェルの1つ。zshとの違いは、OSがCatalina以降であれば「zsh」、Mojave以前であれば「bash」が自動で適用される。環境変数を記載する場所は、設定ファイルである「.bash_profile」の中。

zshやbashなどの設定ファイルは、vimというコマンドを用いて編集する。(見えないファイルだから)
vim:サーバー上で使用できるテキストエディタ。vimコマンドを用いることで、指定したファイルの編集をターミナルから行うことが可能になる。

% vim ~/.zshrc #使用例(zshrcファイルの編集をターミナルから行う)

vimには「通常モード」「インサートモード」がある。
通常モード:コマンドを打つことでファイルを保存したりvimを終了したりできる。
インサートモード:ファイルに編集を加えることができる。この場合、「i」キーを押すことで「insert(インサート)モード」になり、文字の入力が可能になる。ファイル編集後は、Escキーを押すと「通常モード」に戻る。

[通常モードで使えるコマンド一覧]

:w	   #作成・編集したファイルを保存する。
:q	   #vimを終了します。
:q!	   #編集した内容を保存しないでvimを強制終了します。
:wq	   #編集した内容を保存してvimを強制終了します。

ファイル編集後は、sourceコマンドを実行する必要がある。
sourceソースコマンド:シェルに記述された内容を実行する役割を担う。今回は、zshファイル、もしくはbashファイルに記述された内容を実行する。

3.開発環境で環境変数を設定する手順(macOSがCatalina以降の場合)

#手順①
% vim ~/.zshrc  

#手順②
「iキー」を押して、インサートモードに移行。
ターミナルの左下に「INSERT」と表示されたら成功。

#手順③
zshrcファイル内に以下2行のコードを記載    	
~ここから~
export BASIC_AUTH_USER='admin'
export BASIC_AUTH_PASSWORD='2222'
~ここまで~

#手順④
「escキー」を押して、 「:wq」と入力。入力後、「Enterキー」を押して終了。

#手順⑤
% source ~/.zshrc   #sourceコマンドの実行

※macOSがMojave以前であれば、編集するファイルを「.bash_profile」に変更し同様の手順を踏めば良い。

4.本番環境で環境変数を設定する手順

#以下コマンドを順に実行
% heroku config:set BASIC_AUTH_USER="admin(任意)"
% heroku config:set BASIC_AUTH_PASSWORD="2222(任意)"
(% heroku config  でパスワードとユーザー名が表示されていれば、正しく設定ができている。)

#変更したコードをコミットし、Herokuへデプロイ。
% 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