InfoGrab Docs

GitLab Dedicated용 OpenID Connect SSO

요약

GitLab Dedicated 인스턴스에 대해 OpenID Connect(OIDC) 단일 로그인(SSO)을 구성하여 ID 공급자로 사용자를 인증합니다. 다음과 같은 경우에 OIDC SSO를 사용합니다: 이는 GitLab Dedicated 인스턴스의 최종 사용자를 위한 OIDC를 구성합니다.

GitLab Dedicated 인스턴스에 대해 OpenID Connect(OIDC) 단일 로그인(SSO)을 구성하여 ID 공급자로 사용자를 인증합니다.

다음과 같은 경우에 OIDC SSO를 사용합니다:

  • 기존 ID 공급자를 통해 사용자 인증을 중앙 집중화하려는 경우.
  • 사용자를 위한 비밀번호 관리 오버헤드를 줄이려는 경우.
  • 조직의 애플리케이션 전반에 걸쳐 일관된 액세스 제어를 구현하려는 경우.
  • 광범위한 업계 지원이 있는 최신 인증 프로토콜을 사용하려는 경우.
Note

이는 GitLab Dedicated 인스턴스의 최종 사용자를 위한 OIDC를 구성합니다. Switchboard 관리자를 위한 SSO를 구성하려면 Switchboard SSO 구성을 참조하십시오.

OpenID Connect 구성#

사전 요건:

  • ID 공급자를 설정합니다. GitLab이 구성 후 콜백 URL을 제공하므로 임시 콜백 URL을 사용할 수 있습니다.
  • ID 공급자가 OpenID Connect 사양을 지원하는지 확인합니다.

GitLab Dedicated 인스턴스에 OIDC를 구성하려면:

  1. 지원 티켓을 생성합니다.

  2. 지원 티켓에 다음 구성을 제공합니다:

    {
      "label": "Login with OIDC",
      "issuer": "https://accounts.example.com",
      "discovery": true
    }
    
  3. 지원 팀이 액세스할 수 있는 시크릿 관리자에 대한 임시 링크를 사용하여 클라이언트 ID 및 클라이언트 시크릿을 안전하게 제공합니다.

  4. ID 공급자가 자동 검색을 지원하지 않는 경우 클라이언트 엔드포인트 옵션을 포함합니다. 예를 들어:

    {
      "label": "Login with OIDC",
      "issuer": "https://example.com/accounts",
      "discovery": false,
      "client_options": {
        "end_session_endpoint": "https://example.com/logout",
        "authorization_endpoint": "https://example.com/authorize",
        "token_endpoint": "https://example.com/token",
        "userinfo_endpoint": "https://example.com/userinfo",
        "jwks_uri": "https://example.com/jwks"
      }
    }
    

GitLab이 인스턴스에 OIDC를 구성한 후:

  1. 지원 티켓에서 콜백 URL을 받습니다.
  2. 이 콜백 URL로 ID 공급자를 업데이트합니다.
  3. 인스턴스의 로그인 페이지에서 SSO 로그인 버튼을 확인하여 구성을 검증합니다.

OIDC 그룹 멤버십을 기반으로 사용자 구성#

OIDC 그룹 멤버십을 기반으로 사용자 역할 및 액세스를 할당하도록 GitLab을 구성할 수 있습니다.

사전 요건:

  • ID 공급자가 ID token 또는 userinfo 엔드포인트에 그룹 정보를 포함해야 합니다.
  • 기본 OIDC 인증을 이미 구성해야 합니다.

OIDC 그룹 멤버십을 기반으로 사용자를 구성하려면:

  1. GitLab이 그룹 정보를 찾을 위치를 지정하는 groups_attribute 매개변수를 추가합니다.

  2. 필요에 따라 적절한 그룹 배열을 구성합니다.

  3. 지원 티켓에서 OIDC 블록에 그룹 구성을 포함합니다. 예를 들어:

    {
      "label": "Login with OIDC",
      "issuer": "https://accounts.example.com",
      "discovery": true,
      "groups_attribute": "groups",
      "required_groups": [
        "gitlab-users"
      ],
      "external_groups": [
        "external-contractors"
      ],
      "auditor_groups": [
        "auditors"
      ],
      "admin_groups": [
        "gitlab-admins"
      ]
    }
    

구성 매개변수#

다음 매개변수를 사용하여 GitLab Dedicated 인스턴스에 대해 OIDC를 구성할 수 있습니다. 자세한 내용은 인증 공급자로 OpenID Connect 사용을 참조하십시오.

필수 매개변수#

매개변수 설명
issuer ID 공급자의 OpenID Connect 발급자 URL.
label 로그인 버튼의 표시 이름.
discovery OpenID Connect 검색을 사용할지 여부(권장: true).

선택적 매개변수#

매개변수 설명 기본값
admin_groups 관리자 액세스 권한이 있는 그룹. []
auditor_groups 감사자 액세스 권한이 있는 그룹. []
client_auth_method 클라이언트 인증 방법. "basic"
external_groups 외부 사용자로 표시된 그룹. []
groups_attribute OIDC 응답에서 그룹을 찾을 위치. 없음
pkce PKCE(Proof Key for Code Exchange) 활성화. false
required_groups 액세스에 필요한 그룹. []
response_mode 인증 응답 전달 방법. 없음
response_type OAuth 2.0 응답 유형. "code"
scope 요청할 OpenID Connect 범위. ["openid"]
send_scope_to_token_endpoint 토큰 엔드포인트 요청에 범위 매개변수 포함. true
uid_field 고유 식별자로 사용할 필드. "sub"

공급자별 예시#

Google#

{
  "label": "Google",
  "scope": ["openid", "profile", "email"],
  "response_type": "code",
  "issuer": "https://accounts.google.com",
  "client_auth_method": "query",
  "discovery": true,
  "uid_field": "preferred_username",
  "pkce": true
}

Microsoft Azure AD#

{
  "label": "Azure AD",
  "scope": ["openid", "profile", "email"],
  "response_type": "code",
  "issuer": "https://login.microsoftonline.com/your-tenant-id/v2.0",
  "client_auth_method": "query",
  "discovery": true,
  "uid_field": "preferred_username",
  "pkce": true
}

Okta#

{
  "label": "Okta",
  "scope": ["openid", "profile", "email", "groups"],
  "response_type": "code",
  "issuer": "https://your-domain.okta.com/oauth2/default",
  "client_auth_method": "query",
  "discovery": true,
  "uid_field": "preferred_username",
  "pkce": true
}

문제 해결#

OpenID Connect 구성에서 문제가 발생하면:

  • ID 공급자가 올바르게 구성되어 있고 액세스 가능한지 확인합니다.
  • 지원에 제공된 클라이언트 ID와 시크릿이 올바른지 확인합니다.
  • ID 공급자의 리디렉션 URI가 지원 티켓에서 제공된 것과 일치하는지 확인합니다.
  • 발급자 URL이 올바르고 액세스 가능한지 확인합니다.

GitLab Dedicated용 OpenID Connect SSO

Tier: Ultimate
Offering: GitLab Dedicated
원문 보기
요약

GitLab Dedicated 인스턴스에 대해 OpenID Connect(OIDC) 단일 로그인(SSO)을 구성하여 ID 공급자로 사용자를 인증합니다. 다음과 같은 경우에 OIDC SSO를 사용합니다: 이는 GitLab Dedicated 인스턴스의 최종 사용자를 위한 OIDC를 구성합니다.

GitLab Dedicated 인스턴스에 대해 OpenID Connect(OIDC) 단일 로그인(SSO)을 구성하여 ID 공급자로 사용자를 인증합니다.

다음과 같은 경우에 OIDC SSO를 사용합니다:

  • 기존 ID 공급자를 통해 사용자 인증을 중앙 집중화하려는 경우.
  • 사용자를 위한 비밀번호 관리 오버헤드를 줄이려는 경우.
  • 조직의 애플리케이션 전반에 걸쳐 일관된 액세스 제어를 구현하려는 경우.
  • 광범위한 업계 지원이 있는 최신 인증 프로토콜을 사용하려는 경우.
Note

이는 GitLab Dedicated 인스턴스의 최종 사용자를 위한 OIDC를 구성합니다. Switchboard 관리자를 위한 SSO를 구성하려면 Switchboard SSO 구성을 참조하십시오.

OpenID Connect 구성#

사전 요건:

  • ID 공급자를 설정합니다. GitLab이 구성 후 콜백 URL을 제공하므로 임시 콜백 URL을 사용할 수 있습니다.
  • ID 공급자가 OpenID Connect 사양을 지원하는지 확인합니다.

GitLab Dedicated 인스턴스에 OIDC를 구성하려면:

  1. 지원 티켓을 생성합니다.

  2. 지원 티켓에 다음 구성을 제공합니다:

    {
      "label": "Login with OIDC",
      "issuer": "https://accounts.example.com",
      "discovery": true
    }
    
  3. 지원 팀이 액세스할 수 있는 시크릿 관리자에 대한 임시 링크를 사용하여 클라이언트 ID 및 클라이언트 시크릿을 안전하게 제공합니다.

  4. ID 공급자가 자동 검색을 지원하지 않는 경우 클라이언트 엔드포인트 옵션을 포함합니다. 예를 들어:

    {
      "label": "Login with OIDC",
      "issuer": "https://example.com/accounts",
      "discovery": false,
      "client_options": {
        "end_session_endpoint": "https://example.com/logout",
        "authorization_endpoint": "https://example.com/authorize",
        "token_endpoint": "https://example.com/token",
        "userinfo_endpoint": "https://example.com/userinfo",
        "jwks_uri": "https://example.com/jwks"
      }
    }
    

GitLab이 인스턴스에 OIDC를 구성한 후:

  1. 지원 티켓에서 콜백 URL을 받습니다.
  2. 이 콜백 URL로 ID 공급자를 업데이트합니다.
  3. 인스턴스의 로그인 페이지에서 SSO 로그인 버튼을 확인하여 구성을 검증합니다.

OIDC 그룹 멤버십을 기반으로 사용자 구성#

OIDC 그룹 멤버십을 기반으로 사용자 역할 및 액세스를 할당하도록 GitLab을 구성할 수 있습니다.

사전 요건:

  • ID 공급자가 ID token 또는 userinfo 엔드포인트에 그룹 정보를 포함해야 합니다.
  • 기본 OIDC 인증을 이미 구성해야 합니다.

OIDC 그룹 멤버십을 기반으로 사용자를 구성하려면:

  1. GitLab이 그룹 정보를 찾을 위치를 지정하는 groups_attribute 매개변수를 추가합니다.

  2. 필요에 따라 적절한 그룹 배열을 구성합니다.

  3. 지원 티켓에서 OIDC 블록에 그룹 구성을 포함합니다. 예를 들어:

    {
      "label": "Login with OIDC",
      "issuer": "https://accounts.example.com",
      "discovery": true,
      "groups_attribute": "groups",
      "required_groups": [
        "gitlab-users"
      ],
      "external_groups": [
        "external-contractors"
      ],
      "auditor_groups": [
        "auditors"
      ],
      "admin_groups": [
        "gitlab-admins"
      ]
    }
    

구성 매개변수#

다음 매개변수를 사용하여 GitLab Dedicated 인스턴스에 대해 OIDC를 구성할 수 있습니다. 자세한 내용은 인증 공급자로 OpenID Connect 사용을 참조하십시오.

필수 매개변수#

매개변수 설명
issuer ID 공급자의 OpenID Connect 발급자 URL.
label 로그인 버튼의 표시 이름.
discovery OpenID Connect 검색을 사용할지 여부(권장: true).

선택적 매개변수#

매개변수 설명 기본값
admin_groups 관리자 액세스 권한이 있는 그룹. []
auditor_groups 감사자 액세스 권한이 있는 그룹. []
client_auth_method 클라이언트 인증 방법. "basic"
external_groups 외부 사용자로 표시된 그룹. []
groups_attribute OIDC 응답에서 그룹을 찾을 위치. 없음
pkce PKCE(Proof Key for Code Exchange) 활성화. false
required_groups 액세스에 필요한 그룹. []
response_mode 인증 응답 전달 방법. 없음
response_type OAuth 2.0 응답 유형. "code"
scope 요청할 OpenID Connect 범위. ["openid"]
send_scope_to_token_endpoint 토큰 엔드포인트 요청에 범위 매개변수 포함. true
uid_field 고유 식별자로 사용할 필드. "sub"

공급자별 예시#

Google#

{
  "label": "Google",
  "scope": ["openid", "profile", "email"],
  "response_type": "code",
  "issuer": "https://accounts.google.com",
  "client_auth_method": "query",
  "discovery": true,
  "uid_field": "preferred_username",
  "pkce": true
}

Microsoft Azure AD#

{
  "label": "Azure AD",
  "scope": ["openid", "profile", "email"],
  "response_type": "code",
  "issuer": "https://login.microsoftonline.com/your-tenant-id/v2.0",
  "client_auth_method": "query",
  "discovery": true,
  "uid_field": "preferred_username",
  "pkce": true
}

Okta#

{
  "label": "Okta",
  "scope": ["openid", "profile", "email", "groups"],
  "response_type": "code",
  "issuer": "https://your-domain.okta.com/oauth2/default",
  "client_auth_method": "query",
  "discovery": true,
  "uid_field": "preferred_username",
  "pkce": true
}

문제 해결#

OpenID Connect 구성에서 문제가 발생하면:

  • ID 공급자가 올바르게 구성되어 있고 액세스 가능한지 확인합니다.
  • 지원에 제공된 클라이언트 ID와 시크릿이 올바른지 확인합니다.
  • ID 공급자의 리디렉션 URI가 지원 티켓에서 제공된 것과 일치하는지 확인합니다.
  • 발급자 URL이 올바르고 액세스 가능한지 확인합니다.