멤버십 쿼리 작성 및 테스트
이 문서에서는 올바른 사용자를 반환할 수 있도록 멤버십 쿼리를 작성하고 테스트하는 방법을 설명합니다.
시작하기 전에
이 페이지의 정보를 계속 진행하기 전에 다음 작업을 수행하세요.
쿼리 작성 및 테스트
멤버십 쿼리는 target_field condition
형식을 사용하며 Common Expression Language(CEL) 표현식으로 작성합니다. 사용할 수 있는 User
리소스 필드 목록은 동적 그룹에 유효한 사용자 속성을 참조하세요.
샘플 쿼리
다음 예시에서는 exists()
CEL 함수를 사용하여 user.addresses
필드의 특정 값을 확인하는 방법을 보여줍니다.
user.addresses.exists(ad, ad.locality=='Sunnyvale')
exists()
매크로는 유형 목록의 필드에 대한 멤버십 쿼리를 만드는 데 사용됩니다.
다음은 단일 목록 항목에서 area
및 building_id
(구축)의 여러 값 확인하기의 예시입니다.
user.locations.exists(loc, loc.area=='Sunnyvale' && loc.building_id=='Building 1')
다음 예시에서는 제공된 조직 단위의 일부에 속하는 사용자를 찾는 방법을 보여줍니다.
- 제공된 조직 단위의 모든 직접 사용자:
user.org_unit_id==orgUnitId('03ph8a2z1enx4lx')
- 제공된 조직 단위의 모든 직접 및 간접 사용자:
user.org_units.exists(org_unit, org_unit.org_unit_id==orgUnitId('03ph8a2z1khexns'))
user.name.value.equalsIgnoreCase('jOhn DoE')`
쿼리의 부정
멤버십 쿼리에서 NOT !
연산자를 사용하여 특정 속성이 포함된 사용자를 제외할 수 있습니다. 예를 들면 다음과 같습니다.
지정된 조직 단위에 속하지 않는 모든 사용자:
!(user.org_unit_id==orgUnitId('03ph8a2z1enx4lx'))
Marketing
조직에 속하지 않는 모든 사용자:!user.organization.exists(org, org.title = "Marketing")
NOT !
연산자와 exists()
매크로의 일부 조합은 지원되지 않습니다.
exists()
매크로를 사용하고 그 안에서 AND&&
연산자를 사용하는 모든 NOT!
쿼리:!user.organization.exists(org, (org.title == "Cloud" && org.department == "Sales"))
그 안에 NOT
!
연산자가 포함된exists()
매크로를 사용하는 모든 쿼리:user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
멤버십 쿼리 테스트
멤버십 쿼리를 테스트하려면 간단한 쿼리 빌더를 사용해보세요. 드롭다운 메뉴 및 텍스트 필드로 쿼리를 입력하고 테스트할 수 있습니다. 멤버십 쿼리가 올바른 결과를 반환하는 것을 확인한 후에는 Groups API를 사용하여 해당 CEL 쿼리를 만들 수 있습니다.
커스텀 사용자 속성
user.custom_schemas
에 커스텀 스키마가 존재하는 한 커스텀 사용자 속성을 동적 그룹 쿼리에 사용할 수 있지만, 간단한 쿼리 빌더 드롭다운에서 지원되지 않습니다. 커스텀 사용자 속성 쿼리를 테스트하려면 CEL 쿼리 형식에서 CEL 쿼리 입력 텍스트 상자에 직접 입력합니다. 샘플 커스텀 스키마는 다음과 같습니다.
{
"schemaName": "employmentData",
"fields": [
{
"fieldName": "EmployeeNumber",
"fieldType": "STRING",
"multiValued": "false"
},
{
"fieldName": "JobFamily",
"fieldType": "STRING",
"multiValued": "true"
}
]
}
단일 값 필드
user.custom_schemas.employmentData.EmployeeNumber == 'value'
다중 값 필드
user.custom_schemas.employmentData.JobFamily.exists(fld, fld == 'value')
다음 단계
멤버십 쿼리를 테스트한 후 그룹을 만들 때 이를 사용할 수 있습니다. 자세한 내용은 동적 그룹 만들기를 참조하세요.