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: "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 사용 설명서를 참조하십시오.

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

  4. YOUR_APP_SECRET를 클라이언트 비밀 및 auth_url을 리디렉션 URL로 변경하세요.

  5. 구성 파일을 저장합니다.

  6. 변경 사항이 적용되려면:

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