Basic 인증 Part 1

3790 단어 Rails보안

처음에



이번에는 Rails 애플리케이션에 Basic 인증을 도입하는 방법에 대해 설명합니다. 연습으로 배포하는 자신의 앱에 대한 서버 로드를 늘리고 싶지 않은 경우에는 Basic 인증을 도입하여 탐색할 수 있는 사용자를 제한합니다.

기본 인증



Basic 인증은 HTTP 통신 표준에 제공되는 사용자 인증 메커니즘입니다.
서버와 통신할 수 있는 사용자와 비밀번호를 미리 설정해 두고, 그것을 알고 있는 사용자만 웹 애플리케이션을 이용할 수 있도록 할 수 있습니다.



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

이제 어떤 페이지에 액세스하든 기본 인증이 필요합니다. 이번에는 admin이라는 사용자 이름과 2222라는 암호로 Basic 인증을 할 수 있도록 설정하고 있습니다.

기본 인증의 동작을 확인합시다.



application_controller.rb의 기술이 완료되면, 실제로 어플리케이션을 기동해, Basic 인증의 동작이 기대한 것이 되어 있는지 확인해 봅시다.

'rails s'를 한 다음 적절한 페이지에 액세스하면 사용자 이름과 암호를 묻는 팝업 창이 표시됩니다. 잘못된 사용자 이름과 비밀번호로 Basic 인증할 수 없는지 확인하려면 굳이 적절한 문자를 입력해 봅시다. 아래의 Gif에서는 사용자 이름에 hogehoge, 암호에 1111을 입력합니다.



올바르게 구현되면 Basic 인증을위한 팝업 창이 다시 나타납니다. 잘못된 정보로는 로그인할 수 없는 것을 확인할 수 있었으므로 이번에는 올바른 정보를 입력하여 로그인할 수 있는지 확인해 봅시다. 사용자 이름에 admin을 입력하고 암호에 2222를 입력하고 다시 로그인해 보십시오.



라우팅을 지원하는 페이지가 표시되면 기본 인증에 성공한 것입니다.

일단 길기 때문에 Part2 계속됩니다.
지금까지 문제점이 2개 정도 있으므로 생각해 보세요.

좋은 웹페이지 즐겨찾기