GitLab을 OpenID Connect 식별 공급자로 사용하기

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

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

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 범위를 선택하기만 하면 됩니다.

설정 검색

클라이언트가 OIDC 설정을 발견 URL에서 가져올 수 있는 경우 다음 URL을 사용하여 GitLab.com의 올바른 설정을 자동으로 찾을 수 있습니다:

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

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

공유 정보

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

Claim Type Description Included in ID Token Included in userinfo endpoint
sub string 사용자의 ID Yes Yes
auth_time integer 사용자의 마지막 인증 타임스탬프 Yes No
name string 사용자의 전체 이름 Yes Yes
nickname string 사용자의 GitLab 사용자 이름 Yes Yes
preferred_username string 사용자의 GitLab 사용자 이름 Yes Yes
email string 사용자의 이메일 주소
이것은 사용자의 기본 이메일 주소입니다
Yes Yes
email_verified boolean 사용자의 이메일 주소가 확인되었는지 여부 Yes Yes
website string 사용자의 웹사이트 URL Yes Yes
profile string 사용자의 GitLab 프로필 URL Yes Yes
picture string 사용자의 GitLab 아바타 URL Yes Yes
groups array 사용자가 직접 또는 상위 그룹을 통해 멤버인 그룹의 경로 No Yes
groups_direct array 사용자가 직접 멤버인 그룹의 경로 Yes No
https://gitlab.org/claims/groups/owner array 사용자가 소유자 역할로 직접 멤버인 그룹의 이름 No Yes
https://gitlab.org/claims/groups/maintainer array 사용자가 유지 관리자 역할로 직접 멤버인 그룹의 이름 No Yes
https://gitlab.org/claims/groups/developer array 사용자가 개발자 역할로 직접 멤버인 그룹의 이름 No Yes

클레임 emailemail_verified은 응용 프로그램이 email 클레임 및 사용자의 공개 이메일 주소에 액세스 권한이 있는 경우에만 추가됩니다. 그렇지 않으면 포함되지 않습니다. 기타 모든 클레임은 OIDC 클라이언트에서 사용되는 /oauth/userinfo 엔드포인트를 통해 사용할 수 있습니다.