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시간
        }
      }
    
    note
    각 구성 옵션에 대한 자세한 정보는 OmniAuth JWT 사용 설명서를 참조하십시오.
    caution
    이러한 설정을 잘못 구성하면 보안이 취약한 인스턴스가 될 수 있습니다.
  4. YOUR_APP_SECRET을(를) 클라이언트 비밀 및 auth_url을(를) 리디렉션 URL로 변경합니다.
  5. 구성 파일을 저장합니다.
  6. 변경 사항이 적용되려면:

로그인 페이지에는 이제 일반 로그인 양식 아래에 JWT 아이콘이 있어야합니다. 아이콘을 선택하여 인증 프로세스를 시작합니다. JWT는 사용자에게 로그인하여 GitLab 애플리케이션을 승인할 것을 요청합니다. 모든 것이 순조롭게 진행된다면, 사용자는 GitLab으로 리디렉션되어 로그인됩니다.