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

OpenID를 통한 인증 설정은 제공자를 설정하는 것에서 시작됩니다. 이번 경우는 GitLab입니다.

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

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

  1. GitLab 계정 설정의 애플리케이션 섹션으로 이동합니다: https://gitlab.com/-/profile/applications
  2. 필수 필드를 작성합니다:
    • 리다이렉트 URL: http://localhost:3000/api/auth/oidc/gitlab/redirect.
    • 범위: openid, profile, email.

    gitlab app create

  3. 애플리케이션 저장을 클릭하면 다음 화면이 나타납니다:
  4. gitlab app config
  5. 비밀 키를 어딘가에 복사하여 저장합니다(세마포르 설정에 필요합니다) 그리고 계속을 클릭합니다.
  6. 애플리케이션이 준비되었습니다.
  7. gitlab app list

2. 세마포르의 설정 파일에 OpenID 설정 추가하기

세마포르 설정은 보통 config.json이라는 JSON 형식의 설정 파일에 저장됩니다.

Semaphore가 GitLab을 OpenID 제공자로 사용하는 방법을 알 수 있도록 다음 설정을 추가해야 합니다:

"oidc_providers": {
   "gitlab": {
       "display_name": "GitLab",
       "provider_url": "https://gitlab.com",
       "client_id": "애플리케이션 ID",
       "client_secret": "비밀",
       "redirect_url": "http://localhost:4000/api/auth/oidc/gitlab/redirect"
   }
}

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

설정 파일에서 변경 사항을 저장한 후 새 설정으로 Semaphore를 시작하거나 재시작합니다.

세마포르 로그인 페이지에서 새로운 "GitLab" 버튼을 찾을 수 있습니다.

semaphore login screen