Auth0의 개요와 Rails의 이용 예

3523 단어 RailsAuth0

이른바 Auth0


언어든 프레임워크든 몇 줄의 코드만 추가하면 웹 서비스와 로컬 응용에서 인증과 인증 기능을 실현할 수 있다.

할 수 있는 일

  • 구글, 페이스북 등 소셜 계정 인증
  • 이메일 또는 SMS를 이용한 일회용 비밀번호 인증
  • 다원소 인증
  • 비밀번호를 잊어버리는 등 재설정된 일련의 절차
  • 사용자가 등록할 때 등록된 정보의 지정을 알림
  • 액세스 제어
  • 로그인 관련 이벤트에서 온 웹 훅
  • 여러 응용 프로그램에서 단일 서명 열기
  • 이상 접근의 검측 또는 블록
  • etc.
  • 이용 예

  • 로그인 인증
  • API용 라이센스 서버
  • API 서버에 인증 포함
  • 로그인 인증


    타입

  • 일반 로그인:Auth0 호스트의 웹 페이지에 로그인 응용
  • 로그인 및 인증이 동일한 도메인에서 이루어지고 인증 정보가 도메인 전체에서 이동하지 않기 때문에 보안이 향상되고 낚시 공격과 브로커 공격
  • 을 방지할 수 있습니다.
  • Auth0의 대시보드에서 로그인 페이지의 (약간) UI와 동작을 변경할 수 있기 때문에 응용 코드를 변경할 필요가 없음
  • Classic Universal Login 및 New Universal Login이 있고 사용자 정의 및 동작 속도가 낮음
  • New Universal Login에서 Google 인증의 예만 지정됨
  • 삽입 로그인: 응용 프로그램의 웹 페이지에 응용 프로그램에 로그인
  • Auth0에만 인증을 제공하므로 어플리케이션과 호환되는 UX를 고려한 로그인 페이지를 만들 수 있음
  • 반드시 교차 과두 인증
  • 이 된다.
    javascript의 경우 인증 실행 예
    document
      .getElementById('login')
      .addEventListener('click', async () => {
        await auth0.loginWithRedirect();
      });
    

    설치 방법

  • Auth0 대시보드에 Application(Outh 클라이언트라고 함) 만들기
  • 로그인 처리 후 상기 애플로 이동하는 호출 URL 설정
  • 로그인 인증을 부여한 웹 응용 프로그램에서 로그인 페이지로의 이전 처리와 로그인 처리 후의 처리를 기술
  • 상세한 상황은 아래와 같다.
    Quick Start(Rails의 예이지만 언어에 대응하는 실현 방법을 나타낸다)

    devise에서 이동


    라일스의 인증 라이브러리인 devise에서 활용한current_userauthenticate_user!를 직접 활용하기 위해 아래의 모듈을 제작하고application_controller.rbinclude를 진행한다.
    module Auth0Helper
      private
    
      def user_signed_in?
        session[:userinfo].present?
      end
    
      def authenticate_user!
        if user_signed_in?
          @current_user = User.from_omniauth(session[:userinfo]) # from_omniauthはuserを特定するロジック
        else
          redirect_to login_path
        end
      end
    
      def current_user
        @current_user
      end
    end
    

    웹 API용 라이센스 서버


    클라우드 서비스에서 API 서비스를 사용할 때 인증을 받을 수 있는 메커니즘을 제공합니다.
    다음은 AWS의 API Gateway에서 Lambda 함수를 호출할 때 API Gateway 인증을 승인하는 절차입니다.

    Lambda PDF 분석 프로세스의 활용 사례 활용

    설치 방법

  • Auth0 대시보드에 API(Auth0 인증 엔드포인트) 만들기
  • API를 사용하여 클라이언트 ID 및 클라이언트 기밀 정보를 기반으로 Auth0에서 인증 가능
  • 웹 API가 호출된 클라이언트 측에서 호출된 API 처리 설명
  • 상세한 상황은 아래와 같다.
    Securing AWS HTTP APIs with JWT Authorizers

    API 서버


    설치 방법

  • Auth0 대시보드에 API(Auth0 인증 엔드포인트) 만들기
  • API를 사용하여 클라이언트 ID 및 클라이언트 기밀 정보를 기반으로 Auth0에서 인증 가능
  • API 서버 측면에서 Auth0의 응답에 대한 검증 처리 설명
  • 상세한 상황은 아래와 같다.
    Building Secure APIs with Rails 6 and Auth0

    좋은 웹페이지 즐겨찾기