직원 ID 제휴를 위한 SCIM 프로비저닝

ID 공급업체 (IdP)가 도메인 간 ID 관리 시스템 (SCIM)을 지원하는 경우 IdP를 구성하여 Google Cloud에서 그룹을 프로비저닝하고 관리할 수 있습니다.

기능

직원 ID 제휴 SCIM 지원은 다음 기능을 제공합니다.

  • ID 동기화: IdP에서 사용자 데이터의 읽기 전용 사본을 동기화하여 Google Cloud에서 사용자 속성 및 멤버십을 전체적으로 파악합니다.

  • 그룹 병합: 사용자의 모든 직접 및 간접 (중첩) 멤버십이 병합되어Google Cloud 그룹 멤버십 서비스 (GMS)에 동기화되도록 SCIM이 IdP의 그룹을 처리합니다. 그러면 IAM은 이러한 평면화된 그룹을 정책 확인에 사용하여 IdP 토큰에서 흔히 발견되는 크기 제약을 극복합니다.

  • Gemini Enterprise 통합: SCIM 테넌트는 Gemini Enterprise에서의 공유를 지원합니다. 사용자는 객체 ID (UUID) 대신 그룹 이름을 사용하여 그룹과 NotebookLM 노트북을 공유할 수 있습니다. 자세한 내용은 그룹과 노트북 공유하기를 참고하세요.

고려사항

직원 ID 제휴 SCIM 지원을 사용하는 경우 다음 사항을 고려하세요.

  • SCIM 테넌트를 구성하기 전에 직원 ID 풀 및 공급업체를 설정해야 합니다.
  • 각 직원 ID 풀은 하나의 SCIM 테넌트만 지원합니다. 동일한 직원 ID 풀에서 새 SCIM 테넌트를 구성하려면 먼저 기존 테넌트를 삭제해야 합니다. SCIM 테넌트 삭제 시 다음 두 가지 옵션이 있습니다.
    • 소프트 삭제 (기본값): SCIM 테넌트를 삭제하면 30일의 소프트 삭제 기간이 시작됩니다. 이 기간 동안 테넌트는 숨겨져 사용할 수 없으며 동일한 직원 ID 풀에서 새 SCIM 테넌트를 만들 수 없습니다.
    • 하드 삭제: SCIM 테넌트를 영구적으로 즉시 삭제하려면 삭제 명령어와 함께 --hard-delete 플래그를 사용합니다. 이 작업은 되돌릴 수 없으며 삭제가 완료된 후 즉시 동일한 직원 ID 풀에서 새 SCIM 테넌트를 만들 수 있습니다. 또는 새 직원 ID 풀과 새 SCIM 테넌트를 만들거나 이전에 SCIM 테넌트로 구성된 적이 없는 직원 ID 풀을 사용할 수 있습니다.
  • SCIM을 사용하는 경우 직원 ID 풀 공급업체와 SCIM 테넌트 모두에서 속성을 매핑합니다. google.subject 속성은 동일한 ID를 고유하게 참조해야 합니다. --attribute-mapping 플래그를 사용하여 직원 ID 풀 공급업체에서 google.subject를 지정하고 --claim-mapping 플래그를 사용하여 SCIM 테넌트에서 지정합니다. 고유하지 않은 ID 값을 매핑하면 Google Cloud 에서 서로 다른 IdP ID를 동일한 ID로 간주할 수 있습니다. 따라서 한 사용자 또는 그룹 ID에 부여된 액세스 권한이 다른 ID에도 적용될 수 있지만, 한 ID의 액세스 권한을 취소해도 모든 ID의 액세스 권한이 취소되지 않을 수 있습니다.
  • SCIM을 사용하여 그룹을 매핑하려면 --scim-usage=enabled-for-groups를 설정하세요. SCIM을 사용하여 그룹을 매핑하면 직원 ID 풀 공급업체에 정의된 그룹 매핑이 무시됩니다. SCIM 관리형 그룹을 참조할 때 매핑된 속성은 google.groups이 아닌 google.group입니다. google.groups는 토큰 매핑 그룹만 참조합니다.
  • SCIM을 사용하는 경우 --attribute-mapping으로 매핑된 토큰 기반 속성은 여전히 인증 및 주 구성원 식별자에 사용할 수 있습니다.
  • Microsoft Entra ID 구성의 경우 직원 ID 풀 공급업체를 만들 때 --extended-attributes 플래그를 사용하면 안 됩니다.

OIDC 및 SAML 제공업체를 SCIM 구성에 매핑

직원 ID 풀 공급업체 구성 (--attribute-mapping)의 속성 매핑과 SCIM 테넌트 (--claim-mapping)의 클레임 매핑 간에 일관성이 있어야 합니다. google.subject (사용자용)를 채우는 데 사용되는 기본 IdP 속성은 토큰 클레임에서 읽어오는지 SCIM 속성에서 읽어오는지에 관계없이 동일해야 합니다.

이러한 매핑이 일치하지 않으면 사용자가 로그인할 수는 있지만 SCIM 프로비저닝 그룹의 회원으로 인식되지 않습니다. 예를 들어 공급자가 google.subjectassertion.email를 사용하는 경우 SCIM 테넌트도 google.subject에 상응하는 SCIM 속성(예: user.emails[0].value)을 사용해야 합니다.

다음 표에는 일반적인 IdP 토큰 클레임을 SCIM 속성에 매핑하는 참조 예가 나와 있습니다.

Google 속성 직원 ID 풀 제공업체 매핑 (토큰) SCIM 테넌트 매핑 (SCIM)
google.subject assertion.oid user.externalId
google.subject assertion.email user.emails[0].value
google.subject assertion.email.lowerAscii() user.emails[0].value.lowerAscii()
google.subject assertion.preferred_username user.userName
google.subject assertion.sub 호환되지 않음
google.group 해당 사항 없음 (SCIM을 사용하여 매핑됨) group.externalId

지원되는 엔드포인트 및 지원되지 않는 엔드포인트

다음 표준 SCIM 프로토콜 엔드포인트가 지원됩니다.

  • /Users: 사용자 리소스를 관리합니다. 지원되는 작업: Create, Get, Update, Delete, Patch, Put

  • /Groups: 그룹 리소스를 관리합니다. 지원되는 작업: Create, Get, Update, Delete, Patch PUT 메서드는 그룹에 지원되지 않습니다.

  • /Schemas: 스키마 정보를 가져옵니다.

  • /ServiceProviderConfig: 서비스 제공업체 구성을 검색합니다.

다음 SCIM 프로토콜 엔드포인트는 지원되지 않습니다.

  • /Me

  • /Bulk

  • /Search

  • /ResourceTypes

제한사항

다음 섹션에서는 직원 ID 제휴 SCIM 구현의 제한사항과 SCIM 사양 (RFC 7643 및 7644)과의 차이점을 설명합니다.

프로토콜 기능 제한사항

  • 필터 지원: /Users 또는 /Groups 엔드포인트를 사용하여 사용자 또는 그룹을 나열할 때 필터 표현식은 eq (같음) 연산자만 지원합니다. 여러 eq 필터를 and와 결합할 수 있습니다. co (포함) 또는 sw (다음으로 시작)과 같은 다른 SCIM 필터 연산자는 지원되지 않습니다.

  • 페이지로 나누기: IAM SCIM API는 사용자 또는 그룹을 나열하기 위한 표준 페이지로 나누기를 지원하지 않습니다.

    • startIndex: 이 매개변수는 항상 1입니다. startIndex에 제공하는 값과 관계없이 API는 최대 100개의 결과를 반환합니다.

    • itemsPerPage: 단일 응답에서 반환되는 최대 리소스 수는 100개입니다.

    • totalResults: API가 일치하는 리소스의 실제 총 개수를 반환하지 않습니다. 응답의 totalResults 필드는 항상 해당 응답에서 반환되는 항목 수와 같으며 최대 100개입니다.

SCIM 동작 제한사항

  • 변경 불가능한 식별자: google.subject 또는 google.group에 매핑된 SCIM 속성의 값은 Google Cloud내에서 변경 불가능한 식별자로 취급됩니다. 이 값을 변경해야 하는 경우 IdP에서 사용자 또는 그룹을 영구적으로 삭제한 다음 새 값으로 다시 만들어야 합니다.

  • 단일 이메일 요구사항: SCIM 동기화가 성공하려면 각 사용자에게 work 유형의 이메일 주소가 정확히 하나 있어야 합니다. IdP에서 이메일을 여러 개 전송하거나 제공된 단일 이메일이 work로 입력되지 않은 경우 프로비저닝 또는 업데이트가 실패합니다.

  • 대소문자 구분 없는 변환: 제한된 Common Expression Language(CEL) 변환이 SCIM 클레임 매핑에 지원됩니다. user.userNameuser.emails[0].value의 대소문자 구분 없는 비교에는 .lowerAscii()만 지원됩니다.

속성 제한사항

다음 섹션에서는 사용자, 그룹, 엔터프라이즈 사용자 스키마 확장 프로그램의 속성 지원에 대해 설명합니다.

사용자 속성

다음 표에는 사용자 속성 지원에 관한 세부정보가 나와 있습니다.

속성 하위 속성 지원됨 제한사항
userName 해당 사항 없음 해당 사항 없음
name formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix 해당 사항 없음
displayName 해당 사항 없음 해당 사항 없음
nickName 해당 사항 없음 해당 사항 없음
profileUrl 해당 사항 없음 해당 사항 없음
title 해당 사항 없음 해당 사항 없음
userType 해당 사항 없음 해당 사항 없음
preferredLanguage 해당 사항 없음 해당 사항 없음
locale 해당 사항 없음 해당 사항 없음
timezone 해당 사항 없음 해당 사항 없음
active 해당 사항 없음 해당 사항 없음
password 해당 사항 없음 아니요 해당 사항 없음
emails display, type, value, primary work 이메일 유형만 지원됩니다.
phoneNumbers display, type, value, primary 해당 사항 없음
ims display, type, value 해당 사항 없음
photos display, type, value 해당 사항 없음
addresses formatted, streetAddress, locality, region, postalCode, country 해당 사항 없음
groups 해당 사항 없음 아니요 해당 사항 없음
entitlements display, type, value 해당 사항 없음
roles type, value display은 지원되지 않습니다.
x509Certificates type, value display은 지원되지 않습니다.

그룹 속성

다음 표에는 그룹 속성 지원에 관한 세부정보가 나와 있습니다.

속성 지원되는 하위 속성
displayName 해당 사항 없음
externalId 해당 사항 없음
members value, type, $ref, display

엔터프라이즈 사용자 스키마 확장 프로그램 속성

다음 표에는 엔터프라이즈 사용자 스키마 확장 지원에 관한 세부정보가 나와 있습니다.

속성 지원되는 하위 속성
employeeNumber 해당 사항 없음
costCenter 해당 사항 없음
organization 해당 사항 없음
division 해당 사항 없음
department 해당 사항 없음
manager value, $ref, displayName

다음 단계