ID 공급업체 (IdP)가 도메인 간 ID 관리 시스템 (SCIM)을 지원하는 경우 IdP를 구성하여 Google Cloud에서 그룹을 프로비저닝하고 관리할 수 있습니다.
기능
직원 ID 제휴 SCIM 지원은 다음 기능을 제공합니다.
ID 동기화: IdP에서 사용자 데이터의 읽기 전용 사본을 동기화하여 Google Cloud에서 사용자 속성 및 멤버십을 전체적으로 파악합니다.
그룹 병합: SCIM은 IdP의 그룹을 처리하여 사용자의 모든 직접 및 간접 (중첩) 멤버십이 병합되고Google Cloud 그룹 멤버십 서비스 (GMS)에 동기화됩니다. 그러면 IAM에서 이러한 병합된 그룹을 정책 확인에 사용하여 IdP 토큰에서 흔히 발견되는 크기 제약을 극복합니다.
Gemini Enterprise 통합: SCIM 테넌트는 Gemini Enterprise에서의 공유를 지원합니다. SCIM 테넌트는 Gemini Notebook Enterprise 내에서 노트북을 공유하는 것과 관련된 두 가지 기능을 지원합니다.
이메일 주소 및 그룹 자동 완성
객체 ID (UUID) 대신 그룹 이름 사용
자세한 내용은 그룹과 노트북 공유하기를 참고하세요.
고려사항
직원 ID 제휴 SCIM 지원을 사용하는 경우 다음 사항을 고려하세요.
- SCIM 테넌트를 구성하기 전에 직원 ID 풀 및 공급업체를 설정해야 합니다.
- 각 직원 ID 풀은 하나의 SCIM 테넌트만 지원합니다. SCIM 테넌트는 특정 직원 ID 풀 공급업체 아래에 생성되므로 해당 공급업체만 그룹에 SCIM을 사용할 수 있습니다. 동일한 풀의 다른 제공업체에서는 SCIM 사용(
--scim-usage=enabled-for-groups또는--scim-usage=enabled-for-users-groups)을 사용 설정할 수 없습니다. 동일한 직원 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 테넌트가 있는 직원 ID 풀 공급업체에서
--scim-usage=enabled-for-groups(또는--scim-usage=enabled-for-users-groups)를 설정하세요. SCIM을 사용하여 그룹을 매핑하면 해당 공급업체에 정의된 그룹 매핑이 SCIM 관리 그룹을 위해 무시됩니다. SCIM 관리형 그룹을 참조할 때 매핑된 속성은google.groups이 아닌google.group입니다.google.groups는 토큰 매핑 그룹만 참조합니다. SCIM 테넌트가 연결되지 않은 공급자에서 SCIM 사용을 사용 설정하면 런타임에 해당 공급자를 통한 로그인 시도가 실패합니다. Google Cloud 가 해당 공급자의 경로에서 SCIM 테넌트를 찾을 수 없기 때문입니다. - 고유성 적용: Google Cloud 는 SCIM 테넌트에서
google.subject(사용자) 및google.group(그룹)에 매핑된 속성의 고유성을 검증하고 적용합니다. IdP에서 프로비저닝한 매핑된 속성으로 인해 동기화 중에google.subject또는google.group값이 중복되면 HTTP409 Conflict오류와 함께 프로비저닝이 실패합니다. 매핑된 속성이 null 또는 빈 값으로 평가되면 HTTP400 Bad Request오류와 함께 프로비저닝이 실패합니다. - SCIM을 사용하는 경우
--attribute-mapping으로 매핑된 토큰 기반 속성은 여전히 인증 및 주 구성원 식별자에 사용할 수 있습니다. - Microsoft Entra ID 구성의 경우 Gemini Enterprise에서 인간이 읽을 수 있는 그룹 이름을 사용 설정하려면 SCIM을 사용하세요.
- SCIM API (
iamscim.googleapis.com)에는 표준 IAM 리소스 API 할당량과 다른 비율 할당량이 적용됩니다. 기본적으로 쓰기 및 읽기 요청은 조직별로 분당 SCIM 테넌트당 3,000개 요청으로 제한됩니다. 자세한 내용은 할당량 및 한도를 참조하세요.
OIDC 및 SAML 제공업체를 SCIM 구성에 매핑
직원 ID 풀 공급업체 구성 (--attribute-mapping)의 속성 매핑과 SCIM 테넌트 (--claim-mapping)의 클레임 매핑 간에 일관성이 있어야 합니다. google.subject (사용자용)를 채우는 데 사용되는 기본 IdP 속성은 토큰 클레임에서 읽어오는지 SCIM 속성에서 읽어오는지에 관계없이 동일해야 합니다.
이러한 매핑이 일치하지 않으면 사용자가 로그인할 수는 있지만 SCIM 프로비저닝 그룹의 회원으로 인식되지 않습니다. 예를 들어 공급자가 google.subject에 assertion.email를 사용하는 경우 SCIM 테넌트도 google.subject에 상응하는 SCIM 속성(예: user.emails[0].value)을 사용해야 합니다.
다음 표에서는 토큰 클레임 속성과 SCIM 속성 간의 매핑을 보여줍니다.
| Google 속성 | 직원 ID 풀 공급업체 매핑 | SCIM 테넌트 매핑 (SCIM) |
|---|---|---|
google.subject |
assertion.oid (EntraId) |
user.externalId |
google.subject |
assertion.sub (Okta) |
user.externalId |
google.subject |
assertion.preferred_username |
user.userName |
google.subject |
assertion.preferred_username.lowerAscii() |
user.userName.lowerAscii() |
google.subject |
assertion.email |
user.emails[0].value |
google.subject |
assertion.email.lowerAscii() |
user.emails[0].value.lowerAscii() |
google.group |
해당 사항 없음 (SCIM을 사용하여 매핑됨) | group.externalId |
지원되는 엔드포인트 및 지원되지 않는 엔드포인트
다음 표준 SCIM 프로토콜 엔드포인트가 지원됩니다.
/Users: 사용자 리소스를 관리합니다. 지원되는 작업:Create,Get,Update,Delete,Patch,Put/Groups: 그룹 리소스를 관리합니다. 지원되는 작업:Create,Get,Update,Delete,PatchPUT메서드는 그룹에 지원되지 않습니다./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개입니다.
필터 없이 그룹 가져오기 및 그룹 나열:
GetGroup및ListGroupsAPI가 빈 회원 목록을 반환합니다. 특정 그룹의 구성원을 가져오려면 구성원 필터와 함께ListGroupsAPI를 사용하세요.잘못된 토큰이 포함된 비규격 JSON 응답: 잘못된 API 토큰이 포함된 API는 Google Cloud에서
401 HTTP error를 반환합니다. 응답이 사양에 필요한 JSON 구조가 아닙니다.
SCIM 동작 제한사항
변경 불가능한 식별자:
google.subject또는google.group에 매핑된 SCIM 속성의 값은 Google Cloud내에서 변경 불가능한 식별자로 취급됩니다. 이러한 값을 변경해야 하는 경우 IdP에서 사용자 또는 그룹을 영구적으로 삭제한 다음 새 값으로 다시 만들어야 합니다.고유하고 비어 있지 않은 식별자: Google Cloud 는 SCIM 테넌트에서
google.subject및google.group에 매핑된 값의 고유성을 적용합니다.google.subject또는google.group의 값이 중복되는 매핑된 속성을 동기화하면 HTTP409 Conflict오류가 발생하며 실패합니다. null 또는 빈 값으로 평가되는 매핑된 속성은 HTTP400 Bad Request오류와 함께 실패합니다.단일 이메일 요구사항: SCIM 동기화가 성공하려면 각 사용자에게
work유형의 이메일 주소가 하나만 있어야 합니다. IdP에서 이메일을 여러 개 전송하거나 제공된 단일 이메일이work로 입력되지 않은 경우 프로비저닝 또는 업데이트가 실패합니다.대소문자 구분 없는 변환: 제한된 Common Expression Language(CEL) 변환이 SCIM 클레임 매핑에 지원됩니다.
user.userName및user.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 |