メンバークエリの作成とテスト
このドキュメントでは、メンバークエリを作成してテストし、適切なユーザーが返されることを確認する方法について説明します。
始める前に
次の作業を実施した後、このページの内容に進んでください。
Groups API の概要を確認する。
動的グループの概要を確認する。
クエリの作成とテスト
メンバークエリは target_field condition
の形式で、Common Expression Language(CEL)の式として構成されます。使用可能な User
リソース フィールドのリストについては、動的グループの有効なユーザー属性をご覧ください。
サンプルクエリ
次の例は、exists()
CEL 関数を使用して、user.addresses
フィールドの特定の値を確認する方法を示しています。
user.addresses.exists(ad, ad.locality=='Sunnyvale')
exists()
マクロは、タイプリスト項目用のメンバークエリを作成するために使用されます。
1 つのリスト項目で、(建物の)area
と building_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')
次のステップ
メンバークエリのテスト後は、グループの作成で使用できます。詳細については、動的グループの作成をご覧ください。