1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

zshを用いたBasic認証の導入方法

Posted at

記事の概要

・シェルとは
・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キー」を押して、インサートモードに移行します。
Image from Gyazo
上記のように、ターミナルの左下に「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認証を試みます。環境変数として設定したユーザー名とパスワードでログインができれば、正しく実装できています。
もしうまくいかない場合は、シークレットウィンドウで再度確認してみましょう。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?