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: "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로 돌아가 로그인됩니다.