GitHub 를 OAuth 2.0 인증 공급자로 사용하기
GitHub 를 GitLab 의 OAuth 2.0 인증 공급자로 설정하는 방법을 설명합니다.
GitLab 인스턴스를 GitHub.com 및 GitHub Enterprise와 통합할 수 있습니다. GitHub에서 프로젝트를 가져오거나, GitHub 자격 증명으로 GitLab에 로그인할 수 있습니다. GitHub에서 OAuth 앱 생성 # GitHub OmniAuth 공급자를 활성화하려면 GitHub에서 발급한 OAuth 2.0 클라이언트 ID와 클라이언트 시크릿이 필요합니다. GitHub에 로그인합니다. OAuth 앱을 생성 하고 다음 정보를 입력합니다. GitLab 인스턴스의 URL. 예: https://gitlab.example.com . 인증 콜백 URL. 예: https://gitlab.example.com/users/auth/github/callback . GitLab 인스턴스가 기본이 아닌 포트를 사용하는 경우 포트 번호를 포함합니다. 보안 취약점 확인 # 일부 통합에서는 OAuth 2 은닉 리디렉션 취약점으로 GitLab 계정이 침해될 수 있습니다. 이 취약점을 완화하려면 GitLab 인스턴스 URL에 전체 /users/auth/github/callback 경로를 추가합니다. 다만 GitHub는 redirect_uri 의 서브도메인 부분을 검증하지 않습니다. 따라서 웹사이트의 서브도메인에서 발생하는 서브도메인 탈취, XSS, 오픈 리디렉션이 은닉 리디렉션 공격을 가능하게 할 수 있습니다. GitLab에서 GitHub OAuth 활성화 # 공통 설정 을 구성하여 github 를 SSO(Single Sign-On) 공급자로 추가합니다. 이렇게 하면 기존 GitLab 계정이 없는 사용자에 대해 JIT(Just-In-Time) 계정 프로비저닝이 활성화됩니다. 다음 정보를 사용해 GitLab 설정 파일을 수정합니다. GitHub 설정 GitLab 설정 파일의 값 설명 Client ID YOUR_APP_ID OAuth 2.0 클라이언트 ID Client secret YOUR_APP_SECRET OAuth 2.0 클라이언트 시크릿 URL https://github.example.com/ GitHub 배포 URL Linux 패키지 설치의 경우: /etc/gitlab/gitlab.rb 파일을 엽니다. GitHub.com의 경우 다음 섹션을 업데이트합니다. gitlab_rails[ 'omniauth_providers' ] = [ { name: "github" , # label: "Provider name", # optional label for login button, defaults to "GitHub" app_id: "YOUR_APP_ID" , app_secret: "YOUR_APP_SECRET" , args: { scope: "user:email" } } ] GitHub Enterprise의 경우 다음 섹션을 업데이트하고 https://github.example.com/ 를 사용 중인 GitHub URL로 바꿉니다. gitlab_rails[ 'omniauth_providers' ] = [ { name: "github" , # la