記事の概要
・シェルとは
・zshについて
・zshを使ったBasic認証の導入
・環境変数をRailsアプリケーション側で読み込む設定
・Basic認証を確認
シェルとは
シェルは、「ターミナルとOSを繋ぐ窓口役」と呼ばれています。
ターミナルにコマンドを打ちこむと、その指示をOSが読み取って結果を返しているように見えますが、実際にはこの「シェル」が間に挟まり、コマンドによる命令と実行結果の橋渡しをしています。
zshについて
zshはシェルの一つで、2019年のmacOS Catalina以降で使われているシェルです。それ以前に使われていたbashというシェルと比較して、コマンドを実行する際に大きな違いはありませんが、分かりやすい違いとしては、bashのプロンプトは$なのに対し、zshのプロンプトは%であるという点が挙げられます。
zshを使ったBasic認証の導入
通常、Basic認証のためのユーザー名とパスワードは、セキュリティ維持のためGitHub上の公開リポジトリで管理せず、zshなどのシェルの設定ファイル内で環境変数として管理します。
まずはじめに、以下のコマンドをターミナルに打ち込みます。
vim ~/.zshrc
vimは、サーバー上で使用できるテキストエディタで、上記のvimコマンドを用いることで指定したファイルの編集をターミナルから行うことが可能になります。
vimには、
「通常モード」: コマンドを打つことでファイルを保存したりvimを終了したりできる
「インサートモード」: ファイルに編集を加えることができる
の2つのモードがあり、今回は環境変数の設定にあたりファイルの編集が必要なため、インサートモードを使います。
vim ~/.zshrcのあと、「iキー」を押して、インサートモードに移行します。
上記のように、ターミナルの左下に「INSERT」と表示されたら成功です。
その後、ユーザー名とパスワードの設定を追加します。
export BASIC_AUTH_USER='admin'
export BASIC_AUTH_PASSWORD='2222'
記述を追加したら「escキー」を押して、 「:wq」と入力します。
入力後、「Enterキー」を押して終了です。
そして、以下のsourceコマンドをターミナルに打ち込み、「Enterキー」を押したら完了です。
source ~/.bash_profile
「sourceコマンド」は、シェルに記述された内容を実行する役割を担うため、最後にかならず実行しておきましょう。
環境変数をRailsアプリケーション側で読み込む設定
最後に、設定した環境変数をアプリケーション側で読み込む記述が必要です。
application_controller.rbに以下のような記述をします。
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
これで、環境変数を使って、Basic認証を行えるユーザー名とパスワードを定義できました。
Basic認証を確認
サーバー再起動後、Basic認証を試みます。環境変数として設定したユーザー名とパスワードでログインができれば、正しく実装できています。
もしうまくいかない場合は、シークレットウィンドウで再度確認してみましょう。