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. 변경 사항이 적용되려면,
    • Linux 패키지를 사용하여 GitLab을 설치한 경우, GitLab 재구성을 수행하십시오.
    • GitLab 설치를 수동으로 컴파일한 경우, GitLab을 재시작하십시오.

로그인 페이지에는 이제 일반 로그인 폼 아래에 JWT 아이콘이 있어야 합니다.
아이콘을 선택하여 인증 프로세스를 시작합니다. JWT는 사용자가 로그인하여 GitLab 애플리케이션을 승인하도록 요청합니다. 만약 모든 것이 잘 진행되면, 사용자는 GitLab으로 리디렉션되어 로그인됩니다.