Google OAuth 2.0을 OAuth 2.0 인증 제공자로 사용하기
Google OAuth 2.0 OmniAuth 제공자를 활성화하려면 Google에서 애플리케이션을 등록해야 합니다. Google은 사용할 수 있도록 클라이언트 ID와 비밀 키를 생성합니다.
Google OAuth를 활성화하려면 다음을 구성해야 합니다:
- Google Cloud 리소스 관리자
- Google API 콘솔
- GitLab 서버
Google Cloud 리소스 관리자 구성
- Google Cloud 리소스 관리자로 이동합니다.
- 프로젝트 생성을 선택합니다.
-
프로젝트 이름에
GitLab
을 입력합니다. - 프로젝트 ID에 Google이 기본적으로 무작위로 생성한 프로젝트 ID가 제공됩니다. 이 무작위로 생성된 ID를 사용하거나 새로 생성할 수 있습니다. 새로 생성하는 경우 유일해야 합니다. 모든 Google 개발자 등록 애플리케이션 중에서
새 프로젝트를 목록에서 확인하려면 페이지를 새로고침하세요.
Google API 콘솔 구성
- Google API 콘솔로 이동합니다.
- 왼쪽 상단에서 이전에 생성한 프로젝트를 선택합니다.
- 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 리소스 관리자 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: "제공자 이름", # 선택적인 로그인 버튼 레이블, 기본값은 "Google" app_id: "<당신의 앱 ID>", app_secret: "<당신의 앱 비밀>", args: { access_type: "offline", approval_prompt: "" } } ]
자체 컴파일된 설치의 경우:
- { name: 'google_oauth2', # label: '제공자 이름', # 선택적인 로그인 버튼 레이블, 기본값은 "Google" app_id: '당신의 앱 ID', app_secret: '당신의 앱 비밀', args: { access_type: 'offline', approval_prompt: '' } }
-
<당신의 앱 ID>
를 Google 개발자 페이지의 클라이언트 ID로 교체합니다. -
<당신의 앱 비밀>
을 Google 개발자 페이지의 클라이언트 비밀로 교체합니다. -
Google이 노출 IP 주소를 허용하지 않기 때문에 GitLab이 완전히 정규화된 도메인 이름을 사용하도록 구성되었는지 확인합니다.
Linux 패키지 설치의 경우:
external_url 'https://gitlab.example.com'
자체 컴파일된 설치의 경우:
gitlab: host: https://gitlab.example.com
- 구성 파일을 저장합니다.
- 변경 사항이 적용되려면:
- Linux 패키지를 사용하여 설치한 경우, GitLab을 재구성합니다.
- 자체 컴파일한 설치의 경우, GitLab을 다시 시작합니다.
로그인 페이지에는 이제 일반 로그인 양식 아래에 Google 아이콘이 표시됩니다. 이 아이콘을 선택하여 인증 프로세스를 시작합니다. Google은 사용자에게 GitLab 애플리케이션에 서명하고 권한을 부여하도록 요청합니다. 모든 것이 잘 되면 사용자가 GitLab로 되돌아오고 로그인됩니다.