Auth0을 OAuth 2.0 인증 공급자로 사용하기

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

Auth0 OmniAuth 공급자를 활성화하려면 Auth0 계정 및 응용 프로그램을 생성해야 합니다.

  1. Auth0 콘솔에 로그인합니다. 같은 링크를 사용하여 계정을 만들 수도 있습니다.
  2. 새 앱/API를 선택합니다.
  3. 응용 프로그램 이름을 입력합니다. 예: ‘GitLab’.
  4. 응용 프로그램을 생성한 후 퀵 스타트 옵션이 표시됩니다. 이 옵션을 무시하고 대신 설정을 선택합니다.
  5. 설정 화면 상단에 Auth0 콘솔에서 도메인, 클라이언트 ID, 클라이언트 비밀이 표시됩니다. 이러한 설정을 메모하여 나중에 구성 파일을 완성합니다. 예:
    • 도메인: test1234.auth0.com
    • 클라이언트 ID: t6X8L2465bNePWLOvt9yi41i
    • 클라이언트 비밀: KbveM3nqfjwCbrhaUy_gDu2dss8TIlHIdzlyf33pB7dEK5u_NyQdp65O_o02hXs2
  6. 허용된 콜백 URL을 입력합니다:
    • http://<your_gitlab_url>/users/auth/auth0/callback (또는)
    • https://<your_gitlab_url>/users/auth/auth0/callback
  7. 허용된 원본(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 계정이 없는 사용자를 위해 JIT(Just-In-Time) 계정 프로비저닝이 가능해집니다.

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

    Linux 패키지 설치의 경우:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "auth0",
        # label: "공급자 이름", # 로그인 버튼에 대한 옵션 레이블(기본값: "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: '공급자 이름', # 로그인 버튼에 대한 선택적 레이블(기본값: "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 콘솔 페이지의 클라이언트 ID로 대체합니다.
  12. <your_auth0_client_secret>을 Auth0 콘솔 페이지의 클라이언트 비밀로 대체합니다.
  13. <your_auth0_domain>을 Auth0 콘솔 페이지의 도메인으로 대체합니다.
  14. 설치 방법에 따라 GitLab을 다시 구성하거나 다시 시작합니다:

로그인 페이지에는 이제 일반 로그인 양식 아래에 Auth0 아이콘이 표시됩니다. 아이콘을 선택하여 인증 프로세스를 시작합니다. Auth0는 사용자에게 GitLab 응용 프로그램에 로그인하고 권한 부여할 것을 요청합니다. 사용자가 성공적으로 인증되면 사용자는 GitLab로 되돌아가 로그인됩니다.