GitHub를 OAuth 2.0 인증 공급자로 사용
GitHub를 OAuth 2.0 인증 공급자로 사용에 대해 설명합니다.
GitLab 인스턴스를 GitHub.com 및 GitHub Enterprise와 통합할 수 있습니다. GitHub에서 프로젝트를 가져오거나 GitHub 자격 증명으로 GitLab에 로그인할 수 있습니다. GitHub에서 OAuth 앱 생성 # GitHub OmniAuth 공급자를 활성화하려면 GitHub에서 OAuth 2.0 클라이언트 ID와 클라이언트 시크릿이 필요합니다: GitHub에 로그인합니다. OAuth 앱을 생성 하고 다음 정보를 제공합니다: https://gitlab.example.com 과 같은 GitLab 인스턴스의 URL. https://gitlab.example.com/users/auth 와 같은 인증 콜백 URL. GitLab 인스턴스가 기본이 아닌 포트를 사용하는 경우 포트 번호를 포함합니다. 보안 취약점 확인 # 일부 통합의 경우 OAuth 2 코버트 리디렉션 취약점이 GitLab 계정을 위협할 수 있습니다. 이 취약점을 완화하려면 인증 콜백 URL에 /users/auth 를 추가합니다. 그러나 GitHub은 redirect_uri 의 서브도메인 부분을 검증하지 않습니다. 따라서 웹사이트의 서브도메인 중 하나에서 서브도메인 인수, XSS, 또는 열린 리디렉션이 코버트 리디렉션 공격을 가능하게 할 수 있습니다. GitLab에서 GitHub OAuth 활성화 # github 를 단일 로그온(SSO) 공급자로 추가하기 위해 공통 설정 을 구성합니다. 이는 기존 GitLab 계정이 없는 사용자에 대한 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" , # label: "Provider name", # optional label for login button, def
