GitLab.com과 서버 통합
Offering: Self-Managed
GitLab.com에서 프로젝트를 가져오고 GitLab.com 계정으로 GitLab 인스턴스에 로그인하세요.
GitLab.com OmniAuth 제공자를 활성화하려면 GitLab.com에 애플리케이션을 등록해야 합니다.
GitLab.com은 사용할 수 있도록 애플리케이션 ID와 비밀 키를 생성합니다.
- GitLab.com에 로그인합니다.
- 왼쪽 사이드바에서 아바타를 선택합니다.
- 프로필 편집을 선택합니다.
- 왼쪽 사이드바에서 Applications을 선택합니다.
-
새 애플리케이션 추가에 필요한 세부 정보를 제공합니다.
- 이름: 아무 것이나 가능합니다.
<조직 이름>
의 GitLab 또는<당신의 이름>
의 GitLab 또는 기타 설명적인 이름을 고려하세요. -
리디렉션 URI:
# 비-SSL URL을 사용할 수도 있지만 SSL URL을 사용하는 것이 좋습니다. https://your-gitlab.example.com/import/gitlab/callback https://your-gitlab.example.com/users/auth/gitlab/callback
첫 번째 링크는 가져오기에 필요하며 두 번째 링크는 인증에 필요합니다.
만약:
- 가져오기를 사용할 계획이라면, 스코프를 그대로 둘 수 있습니다.
- 이 애플리케이션을 인증 용도로만 사용하려면 더 최소한의 스코프를 사용하는 것을 권장합니다.
read_user
가 충분합니다.
- 이름: 아무 것이나 가능합니다.
- 애플리케이션 저장을 선택합니다.
- 이제 애플리케이션 ID와 시크릿이 표시됩니다. 계속 진행하면서 이 페이지를 열어 둡니다.
-
GitLab 서버에서 구성 파일을 엽니다.
Linux 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
자체 컴파일 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
공통 설정을 구성하여
gitlab
을 단일 로그인 제공자로 추가합니다. 이렇게 함으로써 기존의 GitLab 계정이 없는 사용자들을 위한 신속한 계정 프로비저닝이 가능해집니다. -
제공자 구성을 추가합니다.
GitLab.com 인증을 위한 Linux 패키지 설치의 경우:
gitlab_rails['omniauth_providers'] = [ { name: "gitlab", # label: "제공자 이름", # 로그인 버튼에 대한 선택 사항 라벨, 기본값: "GitLab.com" app_id: "YOUR_APP_ID", app_secret: "YOUR_APP_SECRET", args: { scope: "read_user" } # 선택 사항: 애플리케이션의 스코프 기본값 } ]
또는, 다른 GitLab 인스턴스에 대한 Linux 패키지 설치의 경우:
gitlab_rails['omniauth_providers'] = [ { name: "gitlab", label: "Provider name", # 로그인 버튼에 대한 선택 사항 라벨, 기본값: "GitLab.com" app_id: "YOUR_APP_ID", app_secret: "YOUR_APP_SECRET", args: { scope: "read_user", # 선택 사항: 애플리케이션의 스코프 기본값 client_options: { site: "https://gitlab.example.com" } } } ]
GitLab.com에 대한 자체 컴파일 설치의 경우:
- { name: 'gitlab', # label: '제공자 이름', # 로그인 버튼에 대한 선택 사항 라벨, 기본값: "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET',
또는, 다른 GitLab 인스턴스에 대한 자체 컴파일 설치의 경우:
- { name: 'gitlab', label: 'Provider name', # 로그인 버튼에 대한 선택 사항 라벨, 기본값: "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET', args: { "client_options": { "site": 'https://gitlab.example.com' } }
참고: GitLab 15.1 이전에는
site
매개 변수에/api/v4
접미사가 필요합니다. GitLab 15.2 이상으로 업그레이드한 후에는 접미사를 삭제하는 것이 좋습니다. -
'YOUR_APP_ID'
를 GitLab.com 애플리케이션 페이지의 Application ID로 변경합니다. -
'YOUR_APP_SECRET'
를 GitLab.com 애플리케이션 페이지의 시크릿으로 변경합니다. - 설정 파일을 저장합니다.
- 적절한 방법을 사용하여 이러한 변경 사항을 구현합니다:
- Linux 패키지 설치의 경우, GitLab을 재구성합니다.
- 자체 컴파일 설치의 경우, GitLab을 다시 시작합니다.
로그인 페이지에는 이제 일반적인 로그인 창 뒤에 GitLab.com 아이콘이 있어야 합니다. 이 아이콘을 선택하여 인증 프로세스를 시작합니다.
GitLab.com은 사용자에게 로그인하고 GitLab 애플리케이션을 승인할 것을 요청합니다.
모든 것이 잘 되면 사용자는 GitLab 인스턴스로 돌아가서 로그인됩니다.
로그인 시 액세스 권한 축소
- GitLab 14.8에서 도입되었습니다. 기본적으로 비활성화 상태인
omniauth_login_minimal_scopes
라는 이름의 플래그로 도입되었습니다.- GitLab 14.9에서 GitLab.com에서 사용 가능한 상태로 변경되었습니다.
- GitLab 15.2에서 Feature flag
omniauth_login_minimal_scopes
가 제거되었습니다.
GitLab 인스턴스를 사용하여 인증할 경우, OAuth 애플리케이션이 로그인 시 액세스 권한을 축소할 수 있습니다.
OAuth 애플리케이션은 gl_auth_type=login
인증 매개변수와 함께 애플리케이션의 목적을 홍보할 수 있습니다.
애플리케이션이 api
또는 read_api
로 구성된 경우, 액세스 토큰은 로그인용으로 read_user
로 발급됩니다. 왜냐하면 더 높은 권한이 필요하지 않기 때문입니다.
GitLab OAuth 클라이언트는 이 매개변수를 전달하도록 구성되어 있지만, 다른 애플리케이션도 전달할 수 있습니다.