Auth0를 OAuth 2.0 인증 제공자로 사용하기

Tier: Free, Premium, Ultimate
Offering: Self-managed

Auth0 OmniAuth 제공자를 활성화하려면 Auth0 계정과 애플리케이션을 만들어야 합니다.

  1. Auth0 Console에 로그인합니다. 동일한 링크를 사용하여 계정을 만들 수도 있습니다.
  2. New App/API를 선택합니다.
  3. Application Name을 입력합니다. 예를 들어, ‘GitLab’입니다.
  4. 애플리케이션을 만든 후에는 Quick Start 옵션을 볼 수 있습니다. 이러한 옵션은 무시하고 대신 Settings를 선택합니다.
  5. 설정 화면 상단에서 Auth0 Console의 Domain, Client ID, Client Secret을 확인할 수 있습니다. 나중에 구성 파일을 완료하기 위해 이 설정을 기록해 두세요. 예를 들어:
    • Domain: test1234.auth0.com
    • Client ID: t6X8L2465bNePWLOvt9yi41i
    • Client Secret: KbveM3nqfjwCbrhaUy_gDu2dss8TIlHIdzlyf33pB7dEK5u_NyQdp65O_o02hXs2
  6. Allowed Callback URLs를 입력합니다:
    • http://<your_gitlab_url>/users/auth/auth0/callback (또는)
    • https://<your_gitlab_url>/users/auth/auth0/callback
  7. Allowed Origins (CORS)를 입력합니다:
    • http://<your_gitlab_url> (또는)
    • https://<your_gitlab_url>
  8. GitLab 서버에서 구성 파일을 엽니다.

    Linux 패키지 설치의 경우:

    sudo editor /etc/gitlab/gitlab.rb  
    

    자가 컴파일 설치의 경우:

    cd /home/git/gitlab  
    sudo -u git -H editor config/gitlab.yml  
    
  9. 공통 설정을 구성하여 auth0를 단일 로그인 제공자로 추가합니다. 이 설정은 기존 GitLab 계정이 없는 사용자에게 즉시 계정 프로비저닝을 가능하게 합니다.

  10. 제공자 구성을 추가합니다:

    Linux 패키지 설치의 경우:

    gitlab_rails['omniauth_providers'] = [  
      {  
        name: "auth0",  
        # label: "Provider name", # 로그인 버튼의 선택적 레이블, 기본값 "Auth0"  
        args: {  
          client_id: "<your_auth0_client_id>",  
          client_secret: "<your_auth0_client_secret>",  
          domain: "<your_auth0_domain>",  
          scope: "openid profile email"  
        }  
      }  
    ]  
    

    자가 컴파일 설치의 경우:

    - { name: 'auth0',  
        # label: 'Provider name', # 로그인 버튼의 선택적 레이블, 기본값 "Auth0"  
        args: {  
          client_id: '<your_auth0_client_id>',  
          client_secret: '<your_auth0_client_secret>',  
          domain: '<your_auth0_domain>',  
          scope: 'openid profile email' }  
      }  
    
  11. <your_auth0_client_id>를 Auth0 Console 페이지에서 가져온 클라이언트 ID로 교체합니다.
  12. <your_auth0_client_secret>를 Auth0 Console 페이지에서 가져온 클라이언트 비밀번호로 교체합니다.
  13. <your_auth0_domain>을 Auth0 Console 페이지에서 가져온 도메인으로 교체합니다.
  14. 설치 방법에 따라 GitLab을 재구성하거나 재시작합니다:

로그인 페이지에는 이제 일반 로그인 양식 아래에 Auth0 아이콘이 표시되어야 합니다. 아이콘을 선택하여 인증 프로세스를 시작합니다. Auth0는 사용자에게 로그인하고 GitLab 애플리케이션을 승인하도록 요청합니다. 사용자가 성공적으로 인증하면 사용자는 GitLab로 돌아와서 로그인됩니다.