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

Basic認証 Part 1

Last updated at Posted at 2021-03-10

#始めに
今回は、RailsアプリケーションにBasic認証を導入する方法について説明します。練習としてデプロイしている自身のアプリに対してサーバーの負荷を増やしたくないときなどは、Basic認証を導入して閲覧できるユーザーを制限しましょう。

##Basic認証
Basic認証とは、HTTP通信の規格に備え付けられているユーザー認証の仕組みです。
サーバーと通信が可能なユーザーとパスワードをあらかじめ設定しておき、それを知っているユーザーのみがWebアプリーションを利用できるようにすることができます。

Qiita

Ruby on Railsには、Basic認証を導入するためのメソッドが用意されており、簡単に実装することができます。
便利な世の中ですね(笑)

####authenticate_or_request_with_http_basic
Ruby on RailsでBasic認証を実装するためのメソッドです。
ブロックを開き、ブロック内部でusernameとpasswordを設定することでBasic認証を利用できます。

サンプル
# 'admin'というユーザー名と、'password'というパスワードでBasic認証できるように設定
authenticate_or_request_with_http_basic do |username, password|
  username == 'admin' && password == 'password'
end

##Basic認証のRailsアプリケーションへの導入
authenticate_or_request_with_http_basicメソッドを利用して、開発中のRailsアプリケーションにBasic認証を導入しましょう。

###RailsアプリケーションにBasic認証を導入しよう
Basic認証によるログインの要求は、全てのコントローラで行いたいです。そこで、Basic認証の処理をapplication_controller.rbにて、private以下にメソッドとして定義し、before_actionで呼び出すように実装しましょう。

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 == 'admin' && password == '2222'
    end
  end
end

これで、どのページにアクセスしてもBasic認証が要求されるようになりました。今回は、adminというユーザー名と2222というパスワードでBasic認証ができるように設定しています。

###Basic認証の動作を確認しよう
application_controller.rbの記述が完了したら、実際にアプリケーションを起動し、Basic認証の動作が期待したものになっているか確認してみましょう。

'rails s'をした上で、適当なページにアクセスすると、ユーザー名とパスワードの入力を求めるポップアップウインドウが表示されます。間違ったユーザー名とパスワードではBasic認証できないことを確かめるために、あえて適当な文字を入力してみましょう。以下のGifでは、ユーザー名にhogehoge、パスワードに1111と入力しています。

Qiita

正しく実装できていれば、もう一度Basic認証用のポップアップウインドウが表示されます。 間違った情報ではログインできないことを確認できたので、今度は正しい情報を入力してログインできるかどうかを確かめてみましょう。ユーザー名にadmin、パスワードに2222と入力して、もう一度ログインを試みてください。

Qiita

ルーティングに対応したページが表示されれば、Basic認証に成功しています。

ひとまず長いので、Part2続きます。
ここまでで、問題点が2つほどあるので考えてみてくだい。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?