メンバークエリの作成とテスト

このドキュメントでは、メンバークエリを作成してテストし、適切なユーザーが返されることを確認する方法について説明します。

始める前に

次の作業を実施した後、このページの内容に進んでください。

クエリの作成とテスト

メンバークエリは target_field condition の形式で、Common Expression Language(CEL)の式として構成されます。使用可能な User リソース フィールドのリストについては、動的グループの有効なユーザー属性をご覧ください。

サンプルクエリ

次の例は、exists() CEL 関数を使用して、user.addresses フィールドの特定の値を確認する方法を示しています。

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

exists() マクロは、タイプリスト項目用のメンバークエリを作成するために使用されます。

1 つのリスト項目で、(建物の)areabuilding_id の 2 種類の値を確認する例を次に示します。

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"))
    
  • exists() マクロを使用して、内部に NOT ! 演算子を使用するクエリ:

    user.organization.exists(org, (org.title == "Cloud" || !(org.department == "Sales")))
    

メンバークエリのテスト

メンバークエリをテストするには、簡単なクエリビルダーが使用できます。プルダウン メニューとテキスト フィールドを使用して、クエリを入力してテストできます。メンバークエリが正しい結果を返すことを確認したら、グループ 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')

次のステップ

メンバークエリのテスト後は、グループの作成で使用できます。詳細については、動的グループの作成をご覧ください。