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

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

Google OAuth 2.0 OmniAuth 공급자를 활성화하려면 애플리케이션을 Google에 등록해야 합니다.
Google은 사용하실 클라이언트 ID와 비밀 키를 생성합니다.

Google OAuth를 활성화하려면 다음을 구성해야 합니다:

  • Google Cloud Resource Manager
  • Google API Console
  • GitLab 서버

Google Cloud Resource Manager 구성하기

  1. Google Cloud Resource Manager로 이동합니다.
  2. 프로젝트 만들기를 선택합니다.
  3. 프로젝트 이름GitLab을 입력합니다.
  4. 프로젝트 ID에서 Google은 기본적으로 임의 생성된 프로젝트 ID를 제공합니다.
    이 무작위 생성된 ID를 사용하거나 새로 만들 수 있습니다. 새로 만들 경우
    모든 Google 개발자 등록 애플리케이션에 대해 고유해야 합니다.

새로운 프로젝트가 목록에 나타나도록 하려면 페이지를 새로고침하세요.

Google API Console 구성하기

  1. Google API Console로 이동합니다.
  2. 왼쪽 상단 모서리에서 이전에 만든 프로젝트를 선택합니다.
  3. OAuth 동의 화면을 선택하고 필드를 작성합니다.
  4. 자격 증명 > 자격 증명 만들기 > OAuth 클라이언트 ID를 선택합니다.
  5. 필드를 작성합니다:
    • 응용 프로그램 유형: 웹 응용 프로그램을 선택합니다.
    • 이름: 기본 이름을 사용하거나 자신의 이름을 입력합니다.
    • 권한이 있는 JavaScript 출처: https://gitlab.example.com을 입력합니다.
    • 권한이 있는 리디렉션 URI: 도메인 이름뒤에 콜백 URI를 하나씩 입력합니다:

      https://gitlab.example.com/users/auth/google_oauth2/callback  
      https://gitlab.example.com/-/google_api/auth/callback  
      
  6. 클라이언트 ID와 클라이언트 비밀이 표시되어야 합니다. 이를 기록해 두거나
    나중에 사용할 수 있도록 이 페이지를 열어 두십시오.
  7. 프로젝트가 Google Kubernetes Engine
    에 접근할 수 있도록 하려면 다음을 활성화해야 합니다:
    • Google Kubernetes Engine API
    • Cloud Resource Manager API
    • Cloud Billing API

    그렇게 하려면:

    1. Google API Console로 이동합니다.
    2. 페이지 상단에서 API 및 서비스 사용 설정을 선택합니다.
    3. 위의 API를 각각 찾아 해당 API 페이지에서 사용 설정을 선택합니다.
      API가 완전히 작동하기까지 몇 분 정도 걸릴 수 있습니다.

GitLab 서버 구성하기

  1. 구성 파일을 엽니다.

    Linux 패키지 설치의 경우:

    sudo editor /etc/gitlab/gitlab.rb  
    

    셀프 컴파일 설치의 경우:

    cd /home/git/gitlab  
    sudo -u git -H editor config/gitlab.yml  
    
  2. 공통 설정을 구성하여
    google_oauth2를 단일 로그인 공급자로 추가합니다. 이를 통해 기존 GitLab 계정이 없는
    사용자의 즉시 계정 프로비저닝을 활성화합니다.
  3. 공급자 구성을 추가합니다.

    Linux 패키지 설치의 경우:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "google_oauth2",
        # label: "Provider name", # 로그인 버튼에 대한 선택적 레이블, 기본값은 "Google"
        app_id: "<YOUR_APP_ID>",
        app_secret: "<YOUR_APP_SECRET>",
        args: { access_type: "offline", approval_prompt: "" }
      }
    ]  
    

    셀프 컴파일 설치의 경우:

    - { name: 'google_oauth2',
        # label: 'Provider name', # 로그인 버튼에 대한 선택적 레이블, 기본값은 "Google"
        app_id: 'YOUR_APP_ID',
        app_secret: 'YOUR_APP_SECRET',
        args: { access_type: 'offline', approval_prompt: '' } }  
    
  4. <YOUR_APP_ID>를 Google 개발자 페이지에서 클라이언트 ID로 변경합니다.
  5. <YOUR_APP_SECRET>를 Google 개발자 페이지에서 클라이언트 비밀로 변경합니다.
  6. GitLab이 완전한 도메인 이름을 사용하도록 구성되었는지 확인합니다. Google은
    원시 IP 주소를 허용하지 않습니다.

    Linux 패키지 설치의 경우:

    external_url 'https://gitlab.example.com'  
    

    셀프 컴파일 설치의 경우:

    gitlab:
      host: https://gitlab.example.com  
    
  7. 구성 파일을 저장합니다.
  8. 변경 사항이 적용되도록 하려면:

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