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

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

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

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

- Facebook과 애플리케이션 등록
- GitLab 서버 구성

## Facebook에서 애플리케이션 등록

1. [Facebook 개발자 계정](https://developers.facebook.com/)에 로그인합니다.

1. **내 앱** > **앱 만들기**로 이동하고 다음 단계를 완료합니다.

   1. 앱에 대한 설명적인 이름을 입력합니다. 예: **`<your_organization's>` GitLab** 또는 **`<your_name's>` GitLab**.

   1. **새 Facebook 앱 ID 생성**을 선택합니다.

   1. **카테고리**를 선택합니다. 예: **생산성**.

   1. **앱 ID 생성**을 선택합니다.

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

      ![Facebook 웹사이트 URL](img/facebook_website_url.png)

   1. **다음**을 선택합니다.

1. 오른쪽 상단에서 **빠른 시작 건너뛰기**를 선택합니다.

1. 왼쪽 메뉴에서 **설정**을 선택하고 다음을 완료합니다.

   1. 앱의 연락처 이메일을 입력합니다.

      ![Facebook 앱 설정](img/facebook_app_settings.png)

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

1. 왼쪽 메뉴에서 **상태 및 검토**를 선택하고 다음을 완료합니다.

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

   1. 앱을 공개로 만들 것인지 물으면 **확인**을 선택합니다.

1. 왼쪽 메뉴에서 **대시보드**를 선택하고 다음을 완료합니다.

   1. 숨겨진 **앱 비밀** 옆의 **표시**를 선택합니다.

   1. **앱 ID****앱 비밀**을 복사합니다. 이 페이지를 계속 열어둡니다.

      ![Facebook API 키](img/facebook_api_keys.png)

## GitLab 서버 구성

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

   ::Tabs
   
   :::TabTitle Linux 패키지 설치
   
   ```shell
   sudo editor /etc/gitlab/gitlab.rb
자체 컴파일 설치
   cd /home/git/gitlab

   sudo -u git -H editor config/gitlab.yml

::EndTabs

  1. 공통 설정을 구성하여 facebook을 단일 로그인 제공자로 추가합니다. 이는 기존 GitLab 계정이 없는 사용자의 JIT(즉석) 계정 프로비저닝을 가능하게 합니다.

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

    Linux 패키지 설치
    gitlab_rails['omniauth_providers'] = [
      {
        name: "facebook",
        # label: "Provider name", # 선택적 로그인 버튼의 레이블, 기본값: "Facebook"
        app_id: "YOUR_APP_ID",
        app_secret: "YOUR_APP_SECRET"
      }
    ]
    
    자체 컴파일 설치
    - { name: 'facebook',
        # label: 'Provider name', # 선택적 로그인 버튼의 레이블, 기본값: "Facebook"
        app_id: 'YOUR_APP_ID',
        app_secret: 'YOUR_APP_SECRET' }
    
  3. 제공자 구성에서 다음 값을 붙여넣습니다.

    1. YOUR_APP_ID: 이전 단계에서 복사한 앱 ID.

    2. YOUR_APP_SECRET: 이전 단계에서 복사한 앱 비밀.

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

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

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