NGL で使用される演算子は次のとおりです。
Logical
and
使用法: `and1 演算子は、直前と直後のプロパティ/ステートメントに対して論理and演算を実行します。
構文: property1 = value1 and property2 = value2
例:
Microsoft365 sharepointtenant should-have sharingCapability = "Disabled" and enableAzureADB2BIntegration = false
説明:NGLは、共有機能が無効になっており、AzureAD B2B統合オプションがfalseになっているすべてのMicrosoft365アプリを返します。
or
使用法: or演算子は、その直前と直後のプロパティ/ステートメントに対して論理or演算を実行します。
構文: property1 = value1 or property2 = value2
例:
Microsoft365 sharepointtenant should-have sharingCapability = "Disabled" or enableAzureADB2BIntegration = false
説明:NGLは、共有機能が無効になっているか、AzureAD B2B統合オプションがfalseになっているすべてのMicrosoft365アプリを返します。
not
使用法: not演算子は、その直前と直後のプロパティ/ステートメントに対して論理否定演算を実行します。
構文: not (プロパティ1 = 値)
例:
Microsoft365 sharepointtenant should-have sharingCapability = "Disabled" and not enableAzureADB2BIntegration = false
説明: NGL は、共有機能が無効になっており、AzureAD B2B 統合オプションが有効になっていないすべての Microsoft365 アプリを返します。
Arithmetic
+
使用法: +演算子は、その直前と直後の値の加算を実行します。
構文: len(list1) + len(list2) > 0
–
使用法: -演算子は、直前と直後の値の減算を実行します。
構文: len(list1) – len(list2) > 0
*
使用法: *演算子は、その直前と直後の値の乗算を実行します。
構文: property1 * 2 > 10
%
使用法: %演算子は、その直前と直後の値の除算の剰余を返します。
構文: property1 % 4 = 0
/
使用法: /演算子は、その直前と直後の値の除算を実行します。
構文: property1 / 4 > 0
例:
microsoft365 securescore should-not-have controlscores with-any-element [ controlname = "AdminMFAV2" and (count / total < 1) ]
Relational
=
使用法: = 演算子は、その前のプロパティ/ステートメント/値と、その後のプロパティ/ステートメント/値を比較し、ブール値を返します。
構文: property1 = property2
例:
Microsoft365 sharepointtenant should-have sharingCapability = "Disabled"
説明:NGLは、共有機能が無効になっているすべてのMicrosoft365アプリを返します。
!=
使用法: != 演算子は、その前のプロパティ/ステートメント/値と後のプロパティ/ステートメント/値の等価比較を否定し、ブール値を返します。
構文: property1 != property2
例:
Microsoft365 sharepointtenant should-have sharingCapability != "Disabled"
説明:NGLは、共有機能が無効になっていないすべてのMicrosoft365アプリを返します。
>
使用方法: >演算子は、その前のプロパティ/ステートメント/値と後のプロパティ/ステートメント/値との比較を行い、ブール値を返します。
構文: property1 > property2
例:
microsoft365 malwarefilterpolicy should-have len(FileTypes) > 0
説明: NGL は、ファイルタイプの長さが 0 より大きいすべての Microsoft365 アプリのマルウェアフィルタ ポリシーを返します。
>=
使用法: >= 演算子は、その前のプロパティ/ステートメント/値と後のプロパティ/ステートメント/値を比較して、大小比較を実行し、ブール値を返します。
構文: property1 >= property2
例:
microsoft365 malwarefilterpolicy should-have len(FileTypes) >= 10
説明: NGL は、ファイルタイプの長さが 0 以上であるすべての Microsoft365 アプリのマルウェアフィルタ ポリシーを返します。
<
使用法: < 演算子は、その前のプロパティ/ステートメント/値と後のプロパティ/ステートメント/値を比較して、ブール値を返します。
構文: property1 < property2
例:
microsoft365 malwarefilterpolicy should-have len(FileTypes) < 101
説明: NGL は、ファイルタイプの長さが 101 未満のすべての Microsoft365 アプリのマルウェアフィルタ ポリシーを返します。
<=
使用法: <= 演算子は、その前のプロパティ/ステートメント/値と後のプロパティ/ステートメント/値を比較して、以下または等しいかどうかを判断し、ブール値を返します。
構文: property1 <= property2
例:
microsoft365 malwarefilterpolicy should-have len(FileTypes) <= 100
説明: NGL は、ファイルタイプの長さが 100 以下であるすべての Microsoft365 アプリのマルウェアフィルタ ポリシーを返します。
Utility
( )
使用法:
- `()` は 関数の入力パラメータをキャプチャしたり、ブール式を順序付けしたりするために使用されます。 詳細については「機能」を参照してください。
- 「()」は要素をグループ化するために使います。
構文: func1 ( arg1 ) , ( boolean1 または boolean2 )および( boolean3 または boolean4 )
例:
github repository should-have age(created_at , "days") > 1
azuread deviceconfiguration should-have ( passwordminutesofinactivitybeforescreentimeout = 5 and passwordminutesofinactivitybeforelock = 0 ) or ( passcodeminutesofinactivitybeforescreentimeout = 5 and passcodeminutesofinactivitybeforelock = 0 )
[ ]
使用法: [ ] はリストの要素にアクセスするために使います。 with-elementこれらの要素を配列 [ item1, item2 ] で使用します。 詳細については「キーワード」をご覧ください。
構文: list_property [ element1 ]
例:
github app should-not-have write_permissions with-any-element [ "administration" ]
{ }
使用法: { } は構造を表すために使います。 with-attributeこの要素は、ネストされたオブジェクト内のキーと値のペア { key1: val1, key2: val2 } を指定します。
構文: 構造体属性{構成属性}
例:
zoom User should-have in_meeting with-attribute { e2e_encryption = true }
よくある間違い
このセクションでは、オペレーターに発生する可能性のあるエラーについて概説します。
| Error Scenario | 不適切なNGLの例 | エラーメッセージの例 | エラーを修正する手順 |
|---|---|---|---|
| 識別子は文字列または数値ではありません | AzureAD ユーザーは [5, 6, 7] の ID を持つ必要があります | エラー: 'identities' の型は文字列または数値である必要がありますが、リストが指定されました | 必要なデータ型を満たすプロパティを使用します。 詳細についてはDOMファイルを参照してください。 例: AzureAD ユーザーは ["1-000-000-0123","000-000-1234"] に mobilePhone を持っている必要があります |
| 識別子がINブロック内のプリミティブ型と一致しません | AzureAD ユーザーの employeeHireDate は ["5"] である必要があります | エラー: 型が「数値」の「employeeHireDate」を文字列と照合してはいけません | 必要なデータ型を満たすプロパティを使用します。 詳細についてはDOMファイルを参照してください。 例: AzureAD ユーザーは [5] に employeeHireDate を持っている必要があります |
| 2つの異なるデータ型を比較する | AzureAD ユーザーは部門を持つべきである = true | エラー: '=' 比較演算において、左辺の型 'string' は右辺の型 'boolean' と一致する必要があります。 | 比較のために同じデータ型を使用するようにしてください。 例:AzureAD ユーザーは部門が「abc」であるべき |
| > または < を使用して 2 つのブール値を比較します | AzureAD ユーザーは isResourceAccount > true である必要があります | エラー: 型 'boolean' に対してサポートされていない操作 '>' があります | ブール値の比較には「=」演算子のみが適用されます。 例: AzureAD ユーザーは isResourceAccount = true であるべきです |

