버전 2.8.92부터 Semaphore는 OpenID를 통한 인증을 지원합니다. 이 문서에서는 Ansible Semaphore를 GitLab을 통해 사용자 인증하도록 설정하는 방법을 살펴봅니다.

OpenID를 통한 인증 구성은 공급자 자체(이번 경우에는 GitLab)를 설정하는 것부터 시작합니다.

1. GitLab에서 애플리케이션 생성

GitLab을 통해 인증을 사용하려면 GitLab 계정 설정에서 애플리케이션을 생성해야 합니다.

  1. GitLab 계정 설정의 Applications 섹션으로 이동: https://gitlab.com/-/profile/applications
  2. 필수 필드를 다음과 같이 입력합니다:
    • Redirect URL: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • Scopes: openid, profile, email.

    GitLab 앱 생성

  3. 애플리케이션 저장(Save application)을 클릭하면 다음 화면이 표시됩니다:
  4. GitLab 앱 설정
  5. 비밀 키를 복사해 안전한 곳에 저장하세요(나중에 Semaphore 구성에 필요합니다) 그리고 Continue를 클릭합니다.
  6. 애플리케이션 준비 완료.
  7. GitLab 앱 목록

2. OpenID 설정을 Semaphore의 설정 파일에 추가

아시다시피, Semaphore 설정은 일반적으로 JSON 형식의 설정 파일(보통 config.json)에 저장됩니다.

다음 설정을 추가하여 Semaphore가 GitLab을 OpenID 공급자로 사용하도록 합니다:

"oidc_providers": {
   "gitlab": {
       "display_name": "GitLab",
       "provider_url": "https://gitlab.com",
       "client_id": "Application ID",
       "client_secret": "Secret",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

3. OpenID/GitLab 인증으로 Semaphore 시작하기

설정 파일 변경을 저장한 후, 새 설정으로 Semaphore를 시작하거나 재시작하세요.

Semaphore 로그인 페이지에 새로운 "GitLab" 버튼이 표시됩니다.

Semaphore 로그인 화면