GitLab.com과 서버 통합하기
GitLab.com에서 프로젝트를 가져오고 GitLab.com 계정으로 GitLab 인스턴스에 로그인합니다.
GitLab.com OmniAuth 공급자를 활성화하려면 GitLab.com에 애플리케이션을 등록해야 합니다.
GitLab.com은 사용할 애플리케이션 ID와 비밀 키를 생성합니다.
- GitLab.com에 로그인합니다.
- 왼쪽 사이드바에서 아바타를 선택합니다.
- 프로필 편집을 선택합니다.
- 왼쪽 사이드바에서 애플리케이션을 선택합니다.
-
새 애플리케이션 추가에 필요한 세부정보를 제공합니다.
- 이름: 이것은 아무 것이나 될 수 있습니다.
<조직 이름>의 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
Self-compiled 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
공통 설정을 구성하여
gitlab
을 단일 로그인 공급자로 추가합니다. 이는 기존 GitLab 계정이 없는 사용자에게 즉시 계정을 프로비저닝할 수 있게 해줍니다. -
공급자 구성을 추가합니다:
GitLab.com에 대해 인증하는 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" } # 선택적: 애플리케이션의 범위의 기본값 } ]
아니면, 다른 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에 대해 인증하는 self-compiled 설치의 경우:
- { name: 'gitlab', # label: 'Provider name', # 로그인 버튼에 대한 선택적 레이블, 기본값은 "GitLab.com" app_id: 'YOUR_APP_ID', app_secret: 'YOUR_APP_SECRET',
아니면, 다른 GitLab 인스턴스에 대해 인증하기 위한 self-compiled 설치의 경우:
- { 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 애플리케이션 페이지의 애플리케이션 ID로 변경합니다. -
'YOUR_APP_SECRET'
를 GitLab.com 애플리케이션 페이지의 비밀로 변경합니다. - 구성 파일을 저장합니다.
- 적절한 방법을 사용하여 이러한 변경 사항을 구현합니다:
- Linux 패키지 설치의 경우, GitLab 재구성을 수행합니다.
- Self-compiled 설치의 경우, GitLab 재시작을 수행합니다.
로그인 페이지에는 이제 일반 로그인 양식 뒤에 GitLab.com 아이콘이 있어야 합니다.
아이콘을 선택하여 인증 프로세스를 시작합니다.
GitLab.com은 사용자가 로그인하고 GitLab 애플리케이션에 대한 권한을 부여하도록 요청합니다.
모든 것이 잘 진행된다면 사용자는 귀하의 GitLab 인스턴스로 돌아가게 되고 로그인됩니다.
로그인 시 접근 권한 축소
- 도입됨 GitLab 14.8에서
omniauth_login_minimal_scopes
라는 플래그와 함께. 기본적으로 비활성화되어 있습니다.- GitLab.com에서 활성화됨 GitLab 14.9에서.
- 특징 플래그
omniauth_login_minimal_scopes
GitLab 15.2에서 제거됨.
GitLab 인스턴스를 인증에 사용하는 경우, OAuth 애플리케이션이 로그인에 사용될 때 접근 권한을 축소할 수 있습니다.
모든 OAuth 애플리케이션은
authorization 매개변수 gl_auth_type=login
을 사용하여 애플리케이션의 목적을 광고할 수 있습니다. 애플리케이션이 api
또는 read_api
로 구성된 경우, 로그인 시 read_user
와 함께 액세스 토큰이 발급됩니다. 더 높은 권한이 필요하지 않기 때문입니다.
GitLab OAuth 클라이언스는 이 매개변수를 전달하도록 구성되어 있지만, 다른 애플리케이션도 이를 전달할 수 있습니다.