GitLab.com과 서버를 통합하기
GitLab.com에서 프로젝트를 가져와서 GitLab.com 계정으로 GitLab 인스턴스에 로그인하세요.
GitLab.com에서 OmniAuth 제공 업체를 활성화하려면 응용 프로그램을 GitLab.com에 등록해야합니다.
GitLab.com은 응용 프로그램 ID와 비밀 키를 생성하여 사용하도록 허용합니다.
- GitLab.com에 로그인합니다.
- 왼쪽 사이드바에서 아바타를 선택합니다.
- 프로필 편집을 선택합니다.
- 왼쪽 사이드바에서 응용 프로그램을 선택합니다.
-
새 응용 프로그램 추가에 필요한 세부 정보를 제공합니다.
- 이름: 아무 것이나 가능합니다.
<Organization>의 GitLab
또는<Your Name>의 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 계정이 없는 사용자들을 위해 JIT(Just-In-Time) 계정 프로비저닝이 가능해집니다. -
제공자 구성을 추가합니다:
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: "제공자 이름", # 로그인 버튼에 대한 선택 사항 레이블, 기본값: "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: '제공자 이름', # 로그인 버튼에 대한 선택 사항 레이블, 기본값: "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 응용 프로그램 페이지의 응용 프로그램 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에선 피처 플래그
omniauth_login_minimal_scopes
가 제거되었습니다.
GitLab 인스턴스를 사용하여 인증하는 경우, OAuth 응용 프로그램이 로그인에 사용되는 경우 액세스 권한을 축소할 수 있습니다.
어떤 OAuth 응용 프로그램이라도 인가 매개변수로 응용 프로그램의 목적을 광고할 수 있습니다: gl_auth_type=login
.
응용 프로그램이 api
또는 read_api
로 구성된 경우, 액세스 토큰은 read_user
로 발급됩니다. 왜냐하면 더 높은 권한이 필요하지 않기 때문입니다.
GitLab OAuth 클라이언트는 이 매개변수를 통과하도록 구성됩니다. 그러나 다른 애플리케이션들도 이를 통과할 수 있습니다.