멤버십 쿼리 작성 및 테스트

이 문서에서는 올바른 사용자를 반환할 수 있도록 멤버십 쿼리를 작성하고 테스트하는 방법을 설명합니다.

시작하기 전에

이 페이지의 정보를 계속 진행하기 전에 다음 작업을 수행하세요.

쿼리 작성 및 테스트

멤버십 쿼리는 target_field condition 형식을 사용하며 Common Expression Language(CEL) 표현식으로 작성합니다. 사용할 수 있는 User 리소스 필드 목록은 동적 그룹에 유효한 사용자 속성을 참조하세요.

샘플 쿼리

다음 예시에서는 exists() CEL 함수를 사용하여 user.addresses 필드의 특정 값을 확인하는 방법을 보여줍니다.

user.addresses.exists(ad, ad.locality=='Sunnyvale')

exists() 매크로는 유형 목록의 필드에 대한 멤버십 쿼리를 만드는 데 사용됩니다.

다음은 단일 목록 항목에서 areabuilding_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')

다음 단계

멤버십 쿼리를 테스트한 후 그룹을 만들 때 이를 사용할 수 있습니다. 자세한 내용은 동적 그룹 만들기를 참조하세요.