アクセス制御リスト API - ServiceNow Fluent
アクセス制御リスト API は、アプリケーションの一部を保護するアクセス制御リスト [sys_security_acl] を定義します。
アクセス制御リスト (ACL) に関する一般的な情報については、「 Access Control List Rules」を参照してください。
ACL オブジェクト
新しいオブジェクトへのアクセスを保護するため、またはデフォルトのセキュリティ動作を変更するため、カスタム ACL ルール [sys_security_acl] を構成します。
ACL には、1 つ以上のロール、セキュリティ属性、条件、またはスクリプトが含まれている必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| $id | 文字列または数値 | 必須。メタデータオブジェクトの一意の ID。アプリケーションをビルドすると、この ID は一意のsys_idにハッシュされます。詳細については、「ServiceNow Fluent 言語構成」を参照してください。 形式: |
| 操作 | 文字列 | 必須。この ACL ルールが保護する操作。ACL ルールは 1 つの操作のみを保護できます。複数の操作を保護するには、それぞれに個別の ACL ルールを作成します。 type プロパティが client_callable_flow_object、client_callable_script_include、graphql、processor、または rest_endpoint の場合は、操作 有効な値:
|
| タイプ | 文字列 | 必須。この ACL ルールが保護するオブジェクトのタイプ。タイプによって、使用可能な操作が決まります。 ACL ルールを作成した後、タイプを変更する場合は、ACL を削除し、正しいタイプで新しい ACL を作成する必要があります。 有効な値:
デフォルト:record |
| active | ブーリアン | ACL ルールが適用されるかどうかを示すフラグ。 有効な値:
デフォルト:true |
| adminOverrides | ブール | admin ロールを持つユーザーがこの ACL ルールの権限チェックに自動的に合格するかどうかを示すフラグ。 有効な値:
デフォルト:true |
| スクリプト | スクリプト | オブジェクトへのアクセスに必要な権限を定義するカスタムスクリプト。 このプロパティは、JavaScript モジュールからの関数、スクリプトを含むアプリケーション内の別のファイルへの参照、またはインライン JavaScript をサポートします。 ACL には、1 つ以上のロール、セキュリティ属性、条件、またはスクリプトが含まれている必要があります。 注: type プロパティが graphql の場合、スクリプトはサポートされません。スクリプトは、 current および previous のグローバル変数、およびシステムプロパティの値を使用できます。スクリプトは、次の 2 つの方法のいずれかで true または false の応答を生成する必要があります。
注: 評価されたアイテムが関連リストにある場合、 現在のポイントは、ACL の現在のアイテムではなく、関連リストがあるアイテムを指します。ただし、ACL を評価しているアイテムが関連リストにない場合、現在のポイントは実際のアイテムを指します。Format (形式):
|
| 説明 | 文字列 | この ACL ルールによって保護されるオブジェクトまたは権限の説明。 |
| localOrExisting | 文字列 | 適用するセキュリティ属性のタイプ。 有効な値:
デフォルト:Local |
| 意思決定タイプ | 文字列 | ACL でアクセスを許可するか拒否するかのオプション。 有効な値:
デフォルト:allow |
| ステータス | 文字列 | ユーザーがオブジェクトにアクセスするために true でなければならないフィールドと値を指定するフィルタークエリ。詳細については、「Operators available for filters and queries」を参照してください。 ACL には、1 つ以上のロール、セキュリティ属性、条件、またはスクリプトが含まれている必要があります。 |
| ロール | アレイ | ユーザーがオブジェクトにアクセスするために必要な ロール オブジェクトまたはロールのsys_ids変数識別子のリスト。詳細については、「ロール API - ServiceNow Fluent」を参照してください。 ACL には、1 つ以上のロール、セキュリティ属性、条件、またはスクリプトが含まれている必要があります。 注: admin ロールを持つユーザーは、他のすべてのロールが自動的に付与されるため、常にこの権限チェックに合格します。 |
| セキュリティ属性 | 文字列 | 使用する ACL の事前定義された条件。たとえば、ユーザーが別のユーザーの代理操作を行っているかどうかなどです。セキュリティ属性の詳細については、「OOB (Out-of-Box) Security Attributes」を参照してください。 ACL には、1 つ以上のロール、セキュリティ属性、条件、またはスクリプトが含まれている必要があります。 注: Is localizedフィールドが true に設定されているセキュリティ属性の場合は、ACL の localOrExisting プロパティを Local に設定する必要があります。Is localizedフィールドが false の場合、localOrExisting プロパティを Existing に設定する必要があります。 |
| テーブル | 文字列 | ACL が適用されるテーブルの名前。 このプロパティは、type プロパティが ux_data_broker、ux_page、ux_route、pd_action、または record のいずれかの値である場合にのみ適用され、必須です。 |
| フィールド | 文字列 | 保護するテーブルのフィールドの名前。ワイルドカード文字 ("*") を使用して、すべてのフィールドを選択できます。 |
| 名前 | 文字列 | ACL の名前。 このプロパティは、type プロパティが rest_endpoint、ui_page、processor、graphql、client_callable_flow_object、または client_callable_script_include のいずれかの値である場合にのみ適用され、必須です。 |
| $meta | オブジェクト | アプリケーションメタデータのメタデータ。 installMethod プロパティを使用すると、特定の状況でのみロードされる出力ディレクトリにアプリケーションメタデータをマップできます。 installMethod の有効な値:
|
import { Acl } from "@servicenow/sdk/core";
export default Acl({
$id: Now.ID['task_delete_acl'],
active: true,
adminOverrides: true,
type: 'record',
table: 'task',
field: 'description',
operation: 'delete',
roles: [adminRole, managerRole],
})
import { Role } from "@servicenow/sdk/core";
const managerRole = Role({
$id: Now.ID['manager_role'],
name: 'x_snc_example.manager'
})
const adminRole = Role({
$id: Now.ID['admin_role'],
name: 'x_snc_example.admin',
containsRoles: [managerRole]
})