ID 공급업체 (IdP)가 도메인 간 ID 관리 시스템 (SCIM)을 지원하는 경우 IdP를 구성하여 Google Cloud에서 사용자와 그룹을 프로비저닝하고 관리할 수 있습니다.
기능
직원 ID 제휴 SCIM 지원은 다음 기능을 제공합니다.
- ID 동기화: 외부 IdP의 사용자 및 그룹을 Google Cloud 에 동기화하여 직원 ID를 전체적으로 파악합니다.
- 클레임의 기본 소스: 직원 프로바이더에 SCIM이 사용 설정된 경우 Google Cloud 는 동기화된 SCIM 사용자 및 그룹을 IAM 정책 평가를 위한 사용자 속성 및 그룹 멤버십의 정보 소스로 사용합니다.
- ID 자동 완성: Gemini Enterprise에서 액세스 권한을 부여하고 노트북, 에이전트와 같은 리소스를 공유할 때 사용자 및 그룹 자동 완성을 사용 설정합니다.
고려사항
직원 ID 제휴 SCIM 지원을 사용하는 경우 다음 사항을 고려하세요.
- SCIM 테넌트를 구성하기 전에 직원 ID 풀 및 공급업체를 설정해야 합니다.
- 각 직원 ID 풀은 단일 제공업체에 연결된 하나의 SCIM 테넌트만 지원합니다.
동일한 풀의 다른 제공업체에서는 SCIM 사용 (
--scim-usage)을 사용 설정할 수 없습니다. 동일한 직원 ID 풀에서 새 SCIM 테넌트를 구성하려면 먼저 기존 테넌트를 삭제해야 합니다. SCIM 테넌트를 삭제하려면 다음 방법 중 하나를 사용하세요.- 소프트 삭제 (기본값): SCIM 테넌트를 삭제하면 30일의 소프트 삭제 기간이 시작됩니다. 이 기간 동안 테넌트는 숨겨져 사용할 수 없으며 동일한 직원 ID 풀에서 새 SCIM 테넌트를 만들 수 없습니다.
- 하드 삭제: SCIM 테넌트를 영구적으로 즉시 삭제하려면 삭제 명령어와 함께
--hard-delete플래그를 사용합니다. 이 작업은 되돌릴 수 없으며 30일 보관 기간을 기다리지 않고도 즉시 동일한 직원 ID 풀에서 새 SCIM 테넌트를 만들 수 있습니다. 또는 새 직원 ID 풀과 새 SCIM 테넌트를 만들거나 이전에 SCIM 테넌트로 구성된 적이 없는 직원 ID 풀을 사용할 수 있습니다.
- SCIM 사용 모드 (
--scim-usage):enabled-for-groups(Gemini Enterprise): IAM 승인 및 정책 평가를 위해 SCIM 동기화 그룹을 사용합니다. 사용자 속성은 계속해서 로그인 토큰에서 가져옵니다.google.subject및google.group매핑만 평가됩니다.enabled-for-users-groups(Looker) (미리보기): SCIM 동기화 사용자 및 그룹 데이터를 IAM 승인 및 OAuth 로그인 워크플로의 클레임 소스로 사용합니다.google.subject,google.group, 구성된 모든 사용자 클레임 (예:google.display_name,google.profile_photo,google.email,google.posix_username, 맞춤attribute.KEY)을 평가합니다.
- 상호 배타성:
--scim-usage=enabled-for-users-groups(미리보기) 설정은 추가 속성 (extra_attributes_oauth2_client) 및 확장 속성(extended_attributes_oauth2_client)과 상호 배타적입니다. - 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 사용을 사용 설정하면 Google Cloud 에서 해당 프로바이더의 SCIM 테넌트를 찾을 수 없으므로 로그인 시도가 실패합니다.
- 고유성 적용: Google Cloud 는 SCIM 테넌트에서
google.subject(사용자) 및google.group(그룹)에 매핑된 속성의 고유성을 검증하고 적용합니다. IdP에서 프로비저닝한 매핑된 속성으로 인해 동기화 중에google.subject또는google.group값이 중복되면 HTTP409 Conflict오류와 함께 프로비저닝이 실패합니다. 매핑된 속성이 null 또는 비어 있는 것으로 평가되면 프로비저닝이 HTTP400 Bad Request오류와 함께 실패합니다. - 속성 크기 제한: 직렬화된 매핑 사용자 속성 (
google.group제외)의 최대 크기는 16kB입니다. 매핑된 속성이 이 한도를 초과하면 로그인 시도가 실패합니다. - SCIM 토큰 한도: 각 SCIM 테넌트는 최대 2개의 SCIM 토큰을 지원합니다 (예: 무중단 토큰 순환 지원). 토큰이 두 개인 경우 새 토큰을 만들기 전에 기존 토큰을 삭제하세요.
- SCIM API (
iamscim.googleapis.com)에는 표준 IAM 리소스 API 할당량과 다른 비율 할당량이 적용됩니다. 기본적으로 쓰기 및 읽기 요청은 조직별로 분당 SCIM 테넌트당 3,000개 요청으로 제한됩니다. 자세한 내용은 할당량 및 한도를 참조하세요.
소유권 주장 매핑
SCIM을 구성할 때 SCIM 사용자 및 그룹 속성을 Google 속성에 매핑하도록 SCIM 테넌트에서 클레임 매핑 (--claim-mapping)을 정의합니다.
클레임 매핑에 지원되는 Google Cloud 속성
다음 표에는 Common Expression Language (CEL)를 사용하여 SCIM 테넌트 (--claim-mapping)에서 매핑할 수 있는 Google Cloud 속성이 나와 있습니다.
| Google Cloud 속성 | 요구사항 | 설명 | 지원되는 표현식 및 한도 |
|---|---|---|---|
google.subject |
필수 |
인증하는 사용자의 고유 식별자입니다.
|
다음 기본 표현식 (또는 .lowerAscii() 사용)으로 제한됩니다.
최대 길이: 127바이트 참고: 이 매핑은 SCIM 테넌트가 생성된 후에는 변경할 수 없습니다. 업데이트하려면 SCIM 테넌트를 하드 삭제하고 다시 만들어야 합니다. |
google.group |
SCIM 그룹에 필수 | SCIM을 사용하여 동기화된 그룹 멤버십의 고유 식별자입니다. | 다음 기본 표현식 (또는 .lowerAscii() 사용)으로 제한됩니다.
참고: 이 매핑은 SCIM 테넌트가 생성된 후에는 변경할 수 없습니다. 업데이트하려면 SCIM 테넌트를 하드 삭제하고 다시 만들어야 합니다. |
google.display_name |
선택사항 | Google Cloud 콘솔에서 로그인한 사용자의 이름을 설정하는 속성입니다. IAM 허용 정책에서는 사용할 수 없습니다. | 문자열 속성 (예: user.displayName 또는 user.name.formatted)에 매핑됩니다. 최대 길이는 100바이트입니다. |
google.profile_photo |
선택사항 | Google Cloud 콘솔에서 프로필 사진으로 표시되는 사용자의 썸네일 사진 URL입니다. IAM 허용 정책에서는 사용할 수 없습니다. | 유효한 URL 문자열 (예: user.photos.filter(p, p.type == 'thumbnail')[0].value 또는 user.photos[0].value)로 평가되어야 합니다. |
google.email |
선택사항 | IdP의 이메일 주소를 직원 ID 제휴 OAuth 클라이언트 통합을 사용하여 통합된 제품에 매핑하는 데 사용되는 속성입니다. IAM 허용 정책에서는 사용할 수 없습니다. | 이메일 속성 (예: user.emails.filter(e, e.type == 'work')[0].value 또는 user.emails[0].value)에 매핑됩니다. |
google.posix_username |
선택사항 | SSH-in-browser 및 직원 ID 제휴가 있는 OS 로그인에 사용되는 고유한 POSIX 호환 사용자 이름 문자열입니다. 이 속성은 IAM 허용 정책에서 사용할 수 없습니다. | 최대 길이는 32자(영문 기준)입니다. |
attribute.KEY |
선택사항 |
IAM 허용 정책에서 승인 전략을 정의하는 데 사용할 수 있는 IdP의 맞춤 속성입니다. KEY을 사용하려는 속성 이름으로 바꿉니다. 예를 들어 |
최대 50개의 맞춤 속성 매핑 규칙 규칙당 최대 크기: 256자(영문 기준) |
제공업체 SCIM 사용량 (--scim-usage)에 따른 동작
SCIM 클레임 매핑 평가는 직원 ID 풀 공급업체에 구성된 --scim-usage 모드에 따라 달라집니다.
enabled-for-groups(Gemini Enterprise):google.subject및google.group매핑만 평가됩니다.--claim-mapping의 추가 사용자 클레임 매핑은 무시됩니다.enabled-for-users-groups(Looker) (프리뷰):google.subject,google.group, 구성된 모든 사용자 클레임 (예:google.display_name,google.profile_photo,google.email,google.posix_username, 맞춤attribute.<var>KEY</var>)을 평가합니다.
주제 일관성을 위한 매핑 예시
클레임 매핑에 지원되는 속성에 설명된 대로 google.subject를 채우는 데 사용되는 기본 IdP 속성은 공급자 매핑 (--attribute-mapping)과 SCIM 테넌트 (--claim-mapping) 모두에서 동일해야 합니다. 다음 표에는 참조 예가 나와 있습니다.
| Google 속성 | 직원 ID 풀 공급업체 매핑 | SCIM 테넌트 매핑 (SCIM) |
|---|---|---|
google.subject |
assertion.oid (Entra ID) |
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() |
지원되는 엔드포인트 및 지원되지 않는 엔드포인트
다음 표준 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개입니다.
필터링 없이 그룹 가져오기 및 그룹 나열:
GetGroup및ListGroupsAPI가 빈 회원 목록을 반환합니다. 특정 그룹의 구성원을 가져오려면 구성원 필터와 함께ListGroupsAPI를 사용합니다.잘못된 토큰이 포함된 비규격 JSON 응답: 잘못된 API 토큰이 포함된 요청은 Google Cloud에서
HTTP 401상태 코드를 반환합니다. 대답이 SCIM 사양에 따라 유효한 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()만 지원됩니다.
속성 제한사항
다음 섹션에서는 사용자, 그룹, 엔터프라이즈 사용자 스키마 확장 프로그램의 속성 지원에 대해 설명합니다.
사용자 속성
다음 표에는 사용자 속성과 직원 ID 제휴 클레임에서의 사용 가능 여부가 나와 있습니다.
| 속성 | 하위 속성 | SCIM 프로비저닝에서 지원됨 | 제한사항 | --claim-mapping에서 지원됨 |
|---|---|---|---|---|
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은 지원되지 않습니다. |
아니요 |
그룹 속성
다음 표에는 그룹 속성과 직원 ID 제휴 클레임에서의 사용 가능 여부가 나와 있습니다.
| 속성 | 지원되는 하위 속성 | --claim-mapping에서 지원됨 |
|---|---|---|
displayName |
해당 사항 없음 | 예 |
externalId |
해당 사항 없음 | 예 |
members |
value, type, $ref, display |
아니요 |
엔터프라이즈 사용자 스키마 확장 프로그램 속성
다음 표에는 엔터프라이즈 사용자 스키마 확장 지원에 관한 세부정보가 나와 있습니다.
| 속성 | 지원되는 하위 속성 | --claim-mapping에서 지원됨 |
|---|---|---|
employeeNumber |
해당 사항 없음 | 예 |
costCenter |
해당 사항 없음 | 예 |
organization |
해당 사항 없음 | 예 |
division |
해당 사항 없음 | 예 |
department |
해당 사항 없음 | 예 |
manager |
value, $ref, displayName |
예 ($ref은 SCIM 프로비저닝에서만 지원되며 --claim-mapping에서는 지원되지 않음) |