AliCloud를 OmniAuth 인증 제공자로 사용하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed

당신은 AliCloud OAuth 2.0 OmniAuth 제공자를 활성화하고 AliCloud 계정을 사용하여 GitLab에 로그인할 수 있습니다.

AliCloud 애플리케이션 생성

AliCloud 플랫폼에 로그인하여 애플리케이션을 생성합니다. AliCloud는 사용할 수 있는 클라이언트 ID와 비밀 키를 생성합니다.

  1. AliCloud 플랫폼에 로그인.

  2. OAuth 애플리케이션 관리 페이지로 이동합니다.

  3. 애플리케이션 생성을 선택합니다.

  4. 애플리케이션 세부 정보를 입력합니다:

    • 애플리케이션 이름: 아무 이름이나 가능합니다.
    • 표시 이름: 아무 이름이나 가능합니다.
    • Callback URL: 이 URL은 'GitLab 인스턴스 URL' + '/users/auth/alicloud/callback' 형식으로 작성되어야 합니다. 예: http://test.gitlab.com/users/auth/alicloud/callback.

    저장을 선택합니다.

  5. 애플리케이션 세부 정보 페이지에서 OAuth 스코프를 추가합니다:

    1. 애플리케이션 이름 열 아래, 생성한 애플리케이션의 이름을 선택합니다. 애플리케이션의 세부 정보 페이지가 엽니다.
    2. 애플리케이션 OAuth 스코프 탭에서 OAuth 스코프 추가를 선택합니다.
    3. aliuidprofile 확인란을 선택합니다.
    4. 확인을 선택합니다.

    AliCloud OAuth scope

  6. 애플리케이션 세부 정보 페이지에서 비밀을 생성합니다:

    1. 앱 비밀 탭에서 비밀 생성을 선택합니다.
    2. 생성된 SecretValue를 복사합니다.

GitLab에서 AliCloud OAuth 활성화

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

    • Linux 패키지 설치의 경우:

      sudo editor /etc/gitlab/gitlab.rb
      
    • 자체 컴파일 설치의 경우:

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

  3. 제공자 구성을 추가합니다. YOUR_APP_ID를 애플리케이션 세부 정보 페이지에서 얻은 ID로, YOUR_APP_SECRET는 AliCloud 애플리케이션 등록 시 얻은 SecretValue로 대체합니다.

    • Linux 패키지 설치의 경우:

        gitlab_rails['omniauth_providers'] = [
          {
            name: "alicloud",
            app_id: "YOUR_APP_ID",
            app_secret: "YOUR_APP_SECRET"
          }
        ]
      
    • 자체 컴파일 설치의 경우:

      - { name: 'alicloud',
          app_id: 'YOUR_APP_ID',
          app_secret: 'YOUR_APP_SECRET' }
      
  4. 구성 파일을 저장합니다.

  5. Linux 패키지로 설치했다면 GitLab 재구성, 소스에서 설치했다면 GitLab 재시작을 수행합니다.