GitLab Single Sign-On

plans-img Enterprise, Professional 플랜에서 사용 가능

deployment-img self-hosted 배포판

   

plans-img 모든 플랜 에서 사용 가능

deployment-img Cloud 배포판

GitLab을 단일 사인온(SSO) 서비스로 구성하는 방법

팀 생성, 계정 생성 및 사용자 로그인을 위해 Mattermost를 GitLab의 단일 사인온(SSO) 서비스로 구성하는 단계는 다음과 같습니다.

Important

  • 공식적으로 지원되는 것은 기본 GitLab SSO 뿐입니다.

  • GitLab SSO를 다른 SSO 솔루션에 연결하는 “더블 SSO”는 지원되지 않습니다. 이 경우 GitLab SSO를 AD, LDAP, SAML 또는 MFA 애드온과 연결하는 것이 가능할 수는 있지만 특별한 로직이 필요하기 때문에 공식적으로 지원되지 않으며, 일부 경우에는 작동하지 않는 것으로 알려져 있습니다.

  • Mattermost Free (셀프 호스팅만 해당) 은 OAuth 2.0 표준을 지원합니다.

  • Mattermost ProfessionalMattermost Enterprise 는 OpenID Connect 표준을 지원합니다.

단계 1: GitLab 계정에 Mattermost 애플리케이션 추가

  1. GitLab 계정으로 로그인한 후, https://{gitlab-site-name}/profile/applications 으로 이동합니다. *{gitlab-site-name}*에는 GitLab 인스턴스의 이름을 사용합니다. 서비스 제공자로 GitLab 자체를 사용하는 경우 gitlab.com 을 사용합니다.

  2. 새 애플리케이션을 추가합니다:

  1. 이름 필드에 Mattermost 를 입력합니다.

  2. 리디렉션 URI 필드에서, *{mattermost-site-name}*에 대한 사용자 지정 값을 사용하여 다음 두 줄을 추가합니다.

https://{mattermost-site-name}/login/gitlab/complete
https://{mattermost-site-name}/signup/gitlab/complete

GitLab 인스턴스가 SSL을 사용하지 않도록 설정된 경우 URI는 https:// 대신 http:// 으로 시작해야 합니다.

  1. 스코프를 선택합니다.

    • Mattermost 팀 에디션의 경우, read_user 를 선택합니다.

    • Mattermost 엔터프라이즈의 경우, openid , profile , 및 email 을 선택합니다.

  1. 애플리케이션 저장 을 선택합니다.

  2. GitLab 창을 열어 둡니다. Mattermost를 구성할 때 *Application Id*와 *Application Secret Key*가 필요합니다.

단계 2: GitLab SSO를 위해 Mattermost 구성

  1. Mattermost에 로그인한 후, 시스템 콘솔 > 확인 > OpenID Connect 로 이동합니다.

  2. GitLab 을 서비스 제공자로 선택합니다.

  3. GitLab 인스턴스의 GitLab 사이트 URL 을 입력합니다. GitLab 인스턴스가 SSL을 사용하지 않도록 설정된 경우, URL은 https:// 대신 http:// 로 시작해야 합니다. GitLab 자체를 제공자로 사용하는 경우 gitlab.com 을 사용합니다.

  4. GitLab과의 OpenID Connect용 디스커버리 엔드포인트https://gitlab.com/.well-known/openid-configuration 로 미리 채워져 있습니다.

  5. GitLab에서의 Application ID 를 Mattermost의 클라이언트 ID 로 붙여 넣습니다.

  6. GitLab에서의 Application Secret Key 를 Mattermost의 클라이언트 시크릿 으로 붙여 넣습니다.

  7. config.json 파일을 열고 GitLab에서 선택한 스코프를 GitLabSettings 속성 아래에 지정합니다. 적어도, openid 는 Mattermost Professional 및 Enterprise에 대해 필수적인 스코프이고, Mattermost Team Edition에 대해선 read_user 가 필수적인 스코프입니다. 이 설정을 변경한 경우, 적용되기 전에 서버를 재시작해야 합니다.

  8. 저장 을 선택합니다.

Note

  • Mattermost가 OpenID Connect 또는 OAuth 2.0를 사용하도록 구성되었을 때, Mattermost API를 통해 다음과 같은 사용자 속성 변경을 할 수 없습니다: 이름, 성, 또는 사용자 이름. OpenID Connect 또는 OAuth 2.0은 이러한 사용자 속성에 대한 권한 소스여야 합니다.

  • 로드 밸런서 뒤에서 Mattermost를 사용하고 SSL이 구성된 경우, 로드 밸런서에서 X-Forwarded-Proto 헤더를 https로 설정해야 할 수 있습니다.

(선택 사항) 단계 3: 사용자가 SSO로만 가입하도록 강제하기

모든 사용자가 SSO로만 가입하도록 강제하려면, 시스템 콘솔 > 확인 > 이메일 > 이메일로 로그인 활성화false 로 설정합니다. 사용자는 GitLab으로 Mattermost에 로그인하기 전에 로그인 방법을 변경해야 합니다.

자주 묻는 질문

OpenID에서 LDAP 속성 또는 그룹을 어떻게 사용할 수 있나요?

지금은 LDAP 데이터가 OpenID와 호환되지 않습니다. 현재 LDAP을 사용하여 사용자의 팀, 채널, 그룹 또는 속성을 관리하는 경우, OpenID로 로그인한 사용자에게는 이를 자동으로 수행할 수 없습니다. 각 사용자에게 LDAP가 동기화되어야 하는 경우, 로그인 제공자로 SAML 또는 LDAP를 사용하는 것을 권장합니다. 일부 OpenID 제공자는 Keycloak과 같이 SAML을 대신 사용할 수 있습니다.