Google OAuth 2.0을 OAuth 2.0 인증 공급자로 사용
Offering: GitLab Self-Managed
Google OAuth 2.0 OmniAuth 공급자를 활성화하려면 Google에 애플리케이션을 등록해야 합니다. Google OAuth를 활성화하려면 다음을 구성해야 합니다: 목록에서 새 프로젝트를 보려면 페이지를 새로 고칩니다.
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로 이동합니다.
- CREATE PROJECT를 선택합니다.
- Project name에
GitLab을 입력합니다. - Project ID에서 Google은 기본적으로 무작위로 생성된 프로젝트 ID를 제공합니다. 이 무작위로 생성된 ID를 사용하거나 새 ID를 만들 수 있습니다. 새 ID를 만드는 경우 모든 Google Developer 등록 애플리케이션에서 고유해야 합니다.
목록에서 새 프로젝트를 보려면 페이지를 새로 고칩니다.
Google API Console 구성#
-
Google API Console로 이동합니다.
-
왼쪽 상단 모서리에서 이전에 만든 프로젝트를 선택합니다.
-
OAuth consent screen을 선택하고 필드를 작성합니다.
-
Credentials > Create credentials > OAuth client ID를 선택합니다.
-
필드를 작성합니다:
-
Application type: Web application을 선택합니다.
-
Name: 기본 이름을 사용하거나 직접 입력합니다.
-
Authorized JavaScript origins:
https://gitlab.example.com을 입력합니다. -
Authorized redirect URIs: 도메인 이름 다음에 콜백 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 Console로 이동합니다.
- 페이지 상단에서 ENABLE APIS AND SERVICES를 선택합니다.
- 앞에서 언급한 각 API를 찾습니다. API 페이지에서 ENABLE을 선택합니다. API가 완전히 작동하는 데 몇 분이 걸릴 수 있습니다.
GitLab 서버 구성#
-
구성 파일을 엽니다.
Linux 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb소스 직접 컴파일 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml -
공통 설정을 구성하여
google_oauth2를 단일 로그인 공급자로 추가합니다. 이를 통해 기존 GitLab 계정이 없는 사용자에 대한 Just-In-Time 계정 프로비저닝이 활성화됩니다. -
공급자 구성을 추가합니다.
Linux 패키지 설치의 경우:
gitlab_rails['omniauth_providers'] = [ { name: "google_oauth2", # label: "Provider name", # optional label for login button, defaults to "Google" app_id: "", app_secret: "", args: { access_type: "offline", approval_prompt: "" } } ]소스 직접 컴파일 설치의 경우:
- { name: 'google_oauth2', # label: 'Provider name', # optional label for login button, defaults to "Google" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET', args: { access_type: 'offline', approval_prompt: '' } } -
를 Google Developer 페이지의 클라이언트 ID로 교체합니다. -
를 Google Developer 페이지의 클라이언트 비밀로 교체합니다. -
Google은 원시 IP 주소를 허용하지 않으므로, GitLab이 완전히 정규화된 도메인 이름을 사용하도록 구성했는지 확인합니다.
Linux 패키지 설치의 경우:
external_url 'https://gitlab.example.com'소스 직접 컴파일 설치의 경우:
gitlab: host: https://gitlab.example.com -
구성 파일을 저장합니다.
-
변경 사항을 적용하려면:
- Linux 패키지를 사용하여 설치한 경우 GitLab을 재구성합니다.
- 소스를 직접 컴파일한 경우 GitLab을 재시작합니다.
로그인 페이지에 일반 로그인 양식 아래에 Google 아이콘이 나타납니다. 인증 프로세스를 시작하려면 아이콘을 선택합니다. Google은 사용자에게 GitLab 애플리케이션에 로그인하고 권한을 부여하도록 요청합니다. 모든 것이 잘 되면 사용자는 GitLab으로 돌아와 로그인됩니다.
