JWT를 인증 공급자로 사용

Tier: Free, Premium, Ultimate Offering: Self-Managed

JWT OmniAuth 제공자를 활성화하려면 JWT에 응용 프로그램을 등록해야 합니다. JWT는 사용할 수 있는 비밀 키를 제공합니다.

  1. GitLab 서버에서 구성 파일을 엽니다.

    Linux 패키지 설치의 경우:

    sudo editor /etc/gitlab/gitlab.rb
    

    자체 컴파일 설치의 경우:

    cd /home/git/gitlab
    sudo -u git -H editor config/gitlab.yml
    
  2. 공통 설정을 구성하여 jwt를 단일 로그인 공급자로 추가합니다. 이를 통해 기존 GitLab 계정이 없는 사용자에 대해 Just-In-Time 계정 프로비저닝이 가능해집니다.
  3. 공급자 구성을 추가합니다.

    Linux 패키지 설치의 경우:

    gitlab_rails['omniauth_providers'] = [
      { name: "jwt",
        label: "제공자 이름", # 로그인 버튼에 대한 선택적 레이블, 기본값은 "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: "제공자 이름", # 로그인 버튼에 대한 선택적 레이블, 기본값은 "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 사용 설명서를 참조하십시오.

    경고: 이러한 설정을 잘못 구성하면 보안이 취약한 인스턴스가 될 수 있습니다.

  4. YOUR_APP_SECRET를 클라이언트 시크릿으로 변경하고, auth_url을 리디렉션 URL로 설정합니다.
  5. 구성 파일을 저장합니다.
  6. 변경 사항이 적용되려면:

로그인 페이지에는 이제 일반 로그인 양식 아래에 JWT 아이콘이 표시됩니다. 인증 프로세스를 시작하려면 아이콘을 선택합니다. JWT는 사용자에게 로그인하고 GitLab 응용프로그램을 승인할 것을 요청합니다. 모든 것이 잘 되면 사용자 GitLab으로 리디렉션되어 로그인됩니다.