GitLab을 OpenID Connect 식별 공급자로 사용하기 (FREE ALL)

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed

이 문서는 다른 서비스에 로그인하기 위해 OpenID Connect 식별 공급자로 GitLab을 사용하는 방법에 대해 설명합니다.

OpenID Connect 소개

OpenID Connect (OIDC)는 OAuth 2.0 프로토콜 위의 간단한 식별 레이어입니다. 클라이언트가 다음을 수행할 수 있습니다:

  • GitLab에 의해 수행된 인증을 기반으로 최종 사용자의 식별을 확인합니다.
  • 최종 사용자에 대한 기본 프로필 정보를 상호 운용 가능하고 REST와 유사한 방식으로 얻습니다.

OIDC는 OpenID 2.0과 많은 동일한 작업을 수행하지만 API 친화적이며 네이티브 및 모바일 애플리케이션에서 사용할 수 있습니다.

클라이언트 측에서는 Rails 애플리케이션에 대해 OmniAuth::OpenIDConnect 또는 다른 사용 가능한 클라이언트 구현을 사용할 수 있습니다.

GitLab 구현은 doorkeeper-openid_connect 젬을 사용하며 지원되는 사양의 세부 정보를 확인하려면 해당 README를 참조하십시오.

OAuth 애플리케이션을 위한 OpenID Connect 활성화

GitLab에서 OAuth 애플리케이션을 설정하는 기본 정보에 대해서는 OAuth 가이드를 참조하십시오. 애플리케이션에서 OIDC를 활성화하려면 애플리케이션 설정에서 openid 스코프를 선택하면 됩니다.

설정 검색

클라이언트가 발견 URL에서 OIDC 설정을 가져오도록 허용하는 경우 GitLab.com에 대한 올바른 설정을 자동으로 찾으려면 다음 URL을 사용할 수 있습니다:

https://gitlab.com/.well-known/openid-configuration

유사한 URL은 다른 GitLab 인스턴스에 사용할 수 있습니다.

공유 정보

다음 사용자 정보가 클라이언트와 공유됩니다:

클레임 유형 설명 ID 토큰에 포함 userinfo 엔드포인트에 포함
sub string 사용자의 ID 포함 포함
auth_time integer 사용자의 마지막 인증을 위한 타임스탬프 포함 미포함
name string 사용자의 전체 이름 포함 포함
nickname string 사용자의 GitLab 사용자명 포함 포함
preferred_username string 사용자의 GitLab 사용자명 포함 포함
email string 사용자의 이메일 주소
이는 사용자의 기본 이메일 주소입니다
포함 포함
email_verified boolean 사용자의 이메일 주소가 확인되었는지 여부 포함 포함
website string 사용자의 웹사이트 URL 포함 포함
profile string 사용자의 GitLab 프로필 URL 포함 포함
picture string 사용자의 GitLab 아바타 URL 포함 포함
groups array 사용자가 직접 또는 상위 그룹을 통해 멤버인 그룹의 경로 미포함 포함
groups_direct array 사용자가 직접 멤버인 그룹의 경로 포함 미포함
https://gitlab.org/claims/groups/owner array 사용자가 소유자 역할로 직접 멤버인 그룹의 이름 미포함 포함
https://gitlab.org/claims/groups/maintainer array 사용자가 관리자 역할로 직접 멤버인 그룹의 이름 미포함 포함
https://gitlab.org/claims/groups/developer array 사용자가 개발자 역할로 직접 멤버인 그룹의 이름 미포함 포함

클레임 emailemail_verified는 애플리케이션이 email 클레임 및 사용자의 공개 이메일 주소에 액세스 할 수있는 경우에만 추가됩니다. 그렇지 않으면 포함되지 않습니다. 다른 모든 클레임은 OIDC 클라이언트에서 사용하는 /oauth/userinfo 엔드포인트에서 사용할 수 있습니다.