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를 사용하거나 새로 생성할 수 있습니다. 새 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
- 클라우드 리소스 관리자 API
- 클라우드 청구 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: "<YOUR_APP_ID>", app_secret: "<YOUR_APP_SECRET>", args: { access_type: "offline", approval_prompt: "" } } ]
자체 컴파일 설치의 경우:
- { name: 'google_oauth2', # label: '공급자 이름', # 로그인 버튼의 선택적 레이블, 기본값은 "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으로 돌아가서 로그인합니다.