JWT를 인증 제공자로 사용하기
JWT OmniAuth 제공자를 활성화하려면 애플리케이션을 JWT와 등록해야 합니다. JWT는 사용할 비밀 키를 제공합니다.
-
GitLab 서버에서 구성 파일을 엽니다.
Linux 패키지 설치의 경우:
sudo editor /etc/gitlab/gitlab.rb
자체 컴파일 설치의 경우:
cd /home/git/gitlab sudo -u git -H editor config/gitlab.yml
-
일반 설정을 구성하여
jwt
를 단일 사인온 제공자로 추가합니다. 이렇게 하면 기존의 GitLab 계정이 없는 사용자를 위해 Just-In-Time 계정 프로비저닝이 가능해집니다. -
제공자 구성을 추가합니다.
Linux 패키지 설치의 경우:
gitlab_rails['omniauth_providers'] = [ { name: "jwt", label: "Provider name", # 로그인 버튼에 대한 선택적 레이블, 기본값은 "Jwt" args: { secret: "YOUR_APP_SECRET", algorithm: "HS256", # 지원되는 알고리즘: "RS256", "RS384", "RS512", "ES256", "ES384", "ES512", "HS256", "HS384", "HS512" uid_claim: "email", required_claims: ["name", "email"], info_map: { name: "name", email: "email" }, auth_url: "https://example.com/", valid_within: 3600 # 1시간 } } ]
자체 컴파일 설치의 경우:
- { name: 'jwt', label: 'Provider name', # 로그인 버튼에 대한 선택적 레이블, 기본값은 "Jwt" args: { secret: 'YOUR_APP_SECRET', algorithm: 'HS256', # 지원되는 알고리즘: 'RS256', 'RS384', 'RS512', 'ES256', 'ES384', 'ES512', 'HS256', 'HS384', 'HS512' uid_claim: 'email', required_claims: ['name', 'email'], info_map: { name: 'name', email: 'email' }, auth_url: 'https://example.com/', valid_within: 3600 # 1시간 } }
참고: 각 구성 옵션에 대한 자세한 정보는 OmniAuth JWT 사용 설명서를 참조하십시오.
경고: 이러한 설정을 잘못 구성하면 보안 취약한 인스턴스가 될 수 있습니다.
-
YOUR_APP_SECRET
를 클라이언트 비밀 및auth_url
을 리디렉션 URL로 변경하세요. -
구성 파일을 저장합니다.
-
변경 사항이 적용되려면:
- GitLab을 설치하는 데 Linux 패키지를 사용했다면, GitLab을 다시 구성합니다.
- GitLab을 자체로 컴파일했다면, GitLab을 다시 시작합니다.
로그인 페이지에는 이제 일반적인 로그인 양식 아래에 JWT 아이콘이 표시됩니다. 인증 프로세스를 시작하려면 해당 아이콘을 선택하세요. JWT는 사용자에게 로그인하고 GitLab 애플리케이션을 승인하라는 요청을 합니다. 모든 것이 잘되었다면, 사용자는 GitLab로 리디렉션되어 로그인됩니다.