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

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

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

  1. Auth0 콘솔에 로그인합니다. 동일한 링크를 사용하여 계정을 생성할 수도 있습니다.
  2. New App/API를 선택합니다.
  3. Application Name을 입력합니다. 예: ‘GitLab’.
  4. 애플리케이션을 생성한 후 Quick Start 옵션이 표시됩니다. 이 옵션을 무시하고 대신 Settings를 선택합니다.
  5. 설정 화면 상단에 Auth0 콘솔에서 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 계정이 없는 사용자를 위해 JIT(Just-In-Time) 계정 프로비저닝을 활성화합니다.

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

    Linux 패키지 설치의 경우:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "auth0",
        # label: "Provider name", # optional label for login button, defaults to "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', # optional label for login button, defaults to "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로 반환되어 로그인됩니다.