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 구성
- Google Cloud Resource Manager로 이동합니다.
- 프로젝트 만들기를 선택합니다.
-
프로젝트 이름에
GitLab
을 입력합니다. - 프로젝트 ID에 Google이 기본적으로 무작위로 생성한 프로젝트 ID가 제공됩니다. 이 무작위 생성된 ID를 사용하거나 새 ID를 만들 수 있습니다. 새 ID를 만드는 경우 Google 개발자 등록 애플리케이션 전체에서 고유해야 합니다.
새 프로젝트를 디렉터리에서 확인하려면 페이지를 새로 고칩니다.
Google API 콘솔 구성
- Google API 콘솔로 이동합니다.
- 왼쪽 상단에서 이전에 생성한 프로젝트를 선택합니다.
- OAuth 동의 화면을 선택하고 필드를 완성합니다.
- 자격 증명 > 자격 증명 만들기 > OAuth 클라이언트 ID를 선택합니다.
- 다음을 완성합니다.
- 애플리케이션 유형: 웹 애플리케이션을 선택합니다.
- 이름: 기본 이름을 사용하거나 원하는 이름을 입력합니다.
-
승인된 JavaScript 원본:
https://gitlab.example.com
을 입력합니다. -
승인된 리디렉션 URI: 도메인 이름 다음에 각각의 콜백 URI를 하나씩 입력합니다:
https://gitlab.example.com/users/auth/google_oauth2/callback https://gitlab.example.com/-/google_api/auth/callback
- 클라이언트 ID와 클라이언트 보안 키가 표시됩니다. 이들을 메모하거나 나중에 필요할 때 이 페이지를 열어 둡니다.
-
Google Kubernetes Engine에 액세스하도록 프로젝트를 활성화하려면
다음을 활성화해야 합니다:
- Google Kubernetes Engine API
- Cloud Resource Manager API
- Cloud Billing API
다음을 수행하세요:
- Google API 콘솔로 이동합니다.
- 페이지 상단에서 API 및 서비스 사용 설정을 선택합니다.
- 위의 각 API를 찾습니다. API 페이지에서 사용 설정을 선택합니다. API가 완전히 기능적으로 사용될 수 있도록 하는 데 몇 분이 소요될 수 있습니다.
GitLab 서버 구성
-
구성 파일을 엽니다.
Linux 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
자체 컴파일 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
공통 설정을 구성하여
google_oauth2
를 단일 사인온 제공자로 추가하세요. 이렇게 하면 기존 GitLab 계정이없는 사용자에게 실시간 계정 프로비저닝이 가능해집니다. -
제공자 구성을 추가하세요.
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: '' } }
-
<YOUR_APP_ID>
를 Google 개발자 페이지의 클라이언트 ID로 교체합니다. -
<YOUR_APP_SECRET>
을 Google 개발자 페이지의 클라이언트 보안 키로 교체합니다. -
Google이 노출 IP 주소를 허용하지 않기 때문에 GitLab을 완전히 정규화된 도메인 이름을 사용하도록 구성하세요.
Linux 패키지 설치의 경우:
external_url 'https://gitlab.example.com'
자체 컴파일 설치의 경우:
gitlab: host: https://gitlab.example.com
- 구성 파일을 저장합니다.
- 변경 사항을 적용하려면:
- Linux 패키지를 사용하여 설치한 경우, GitLab을 다시 구성하세요.
- 직접 설치한 경우, GitLab을 다시 시작하세요.
로그인 페이지에 일반 로그인 양식 아래에 Google 아이콘이 나타날 것입니다. 인증 프로세스를 시작하려면 아이콘을 선택하세요. Google은 사용자에게 로그인하고 GitLab 애플리케이션을 승인하도록 요청합니다. 모든 것이 잘 되면 사용자는 GitLab로 돌아가서 로그인됩니다.