Facebook을 OAuth 2.0 인증 제공자로 사용하기

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

사용자들을 Facebook 계정으로 인증하는 데 Facebook OmniAuth 제공자를 사용할 수 있습니다.

Facebook OmniAuth 제공자를 활성화하려면 다음을 수행해야 합니다:

  • Facebook에서 애플리케이션을 등록합니다. Facebook은 애플리케이션 ID 및 비밀 키를 생성하여 사용할 수 있게 합니다.
  • GitLab 서버를 구성합니다.

Facebook에서 애플리케이션 등록

  1. Facebook 개발자 계정에 로그인합니다.

  2. 내 앱 > 앱 만들기로 이동한 후 다음 단계를 완료합니다:

    1. 앱에 대한 설명적인 이름을 입력합니다. 예: <당사의_이름> GitLab 또는 <본인의_이름> GitLab.

    2. 새 Facebook 앱 ID 만들기를 선택합니다.

    3. 카테고리를 선택합니다. 예: 프로덕션성.

    4. 앱 ID 생성을 선택합니다.

    5. 페이지 하단에 GitLab 설치 주소를 입력합니다.

      Facebook 웹사이트 URL

    6. 다음을 선택합니다.

  3. 오른쪽 상단에 있는 빠른 시작 건너뛰기를 선택합니다.

  4. 왼쪽 메뉴에서 설정을 선택한 후 다음을 완료합니다:

    1. 앱에 대한 연락처 이메일을 입력합니다.

      Facebook 앱 설정

    2. 변경 사항 저장을 선택합니다.

  5. 왼쪽 메뉴에서 상태 및 검토를 선택한 후 다음을 완료합니다:

    1. 오른쪽에 있는 스위치를 아니요에서 로 변경합니다.

    2. 앱을 공개로 만들 것인지 물어보면 확인을 선택합니다.

  6. 왼쪽 메뉴에서 대시보드를 선택한 후 다음을 완료합니다:

    1. 숨겨진 앱 비밀 옆에 있는 보기를 선택합니다.

    2. 앱 ID앱 비밀을 복사합니다. 이 페이지를 열어둡니다.

      Facebook API 키

GitLab 서버 구성

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

    Linux 패키지 설치
    sudo editor /etc/gitlab/gitlab.rb
    
    직접 컴파일한 설치
    cd /home/git/gitlab
       
    sudo -u git -H editor config/gitlab.yml
    
  2. 공통 설정을 구성하여 facebook을 단일 로그인 제공자로 추가합니다. 이렇게 하면 기존의 GitLab 계정이 없는 사용자들을 위해 즉시 계정 공급이 가능해집니다.

  3. 제공자 구성을 추가합니다:

    Linux 패키지 설치
    gitlab_rails['omniauth_providers'] = [
      {
        name: "facebook",
        # label: "제공자 이름", # 선택 사항, 로그인 버튼에 대한 레이블이며 기본값은 "Facebook"입니다.
        app_id: "당신의_앱_ID",
        app_secret: "당신의_앱_비밀"
      }
    ]
    
    직접 컴파일한 설치
    - { name: 'facebook',
        # label: '제공자 이름', # 선택 사항, 로그인 버튼에 대한 레이블이며 기본값은 "Facebook"입니다.
        app_id: '당신의_앱_ID',
        app_secret: '당신의_앱_비밀' }
    
  4. 제공자 구성에서 다음 값을 붙여넣습니다:

    1. 당신의_앱_ID: 이전 단계에서 복사한 앱 ID입니다.

    2. 당신의_앱_비밀: 이전 단계에서 복사한 앱 비밀입니다.

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

  6. 변경 사항을 적용하려면:

    • Linux 패키지를 사용하여 설치한 경우, GitLab 재구성을 실행합니다.
    • 직접 컴파일하여 설치한 경우, GitLab 재시작을 실행합니다.

로그인 페이지에서 이제 Facebook 아이콘이 로그인 필드 아래에 표시됩니다. 사용자는 해당 아이콘을 선택하여 로그인할 수 있습니다.