접근 제어 목록 API - ServiceNow Fluent
액세스 제어 목록 API에는 애플리케이션의 일부를 보호하는 액세스 제어 목록[sys_security_acl]을 정의하는 개체가 포함되어 있습니다.
ACL 객체
사용자 지정 ACL 규칙 [sys_security_acl]을 구성하여 새 객체에 대한 액세스를 보호하거나 기본 보안 동작을 변경합니다.
ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| $id | 문자열 또는 숫자 | 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.애플리케이션을 빌드할 때 이 ID는 고유한 sys_ID로 해시됩니다. |
| 테이블 | 문자열 | ACL이 적용되는 테이블의 이름입니다. 이 속성은 type 속성이 ux_data_broker, ux_page, ux_route, pd_action 또는 record 값 중 하나인 경우에만 적용되며 필수입니다. |
| 필드 | 문자열 | 보호할 테이블의 필드 이름입니다. 와일드카드 문자("*")를 사용하여 모든 필드를 선택할 수 있습니다.이 속성은 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 값 중 하나인 경우에만 적용되며 필수입니다. |
| 운영 | 문자열 | 필수 이 ACL 규칙이 보호하는 작업입니다. ACL 규칙은 하나의 작업만 보호할 수 있습니다. 여러 작업을 보호하려면 각각에 대해 별도의 ACL 규칙을 생성합니다. 유형 속성이 client_callable_flow_object, client_callable_script_include, graphql, processor 또는 rest_endpoint인 경우 작업을 실행해야 합니다. 유효한 값: execute, create, read, write, delete, edit_task_relations, edit_ci_relations, save_as_template, add_to_list, report_on, list_edit, report_view, personalize_choices |
| 유형 | 문자열 | 이 ACL 규칙이 보호하는 객체의 유형입니다. 유형에 따라 사용할 수 있는 작업이 결정됩니다. ACL 규칙을 만든 후 형식을 변경하려면 ACL을 삭제하고 올바른 형식으로 새 ACL을 만들어야 합니다. 유효한 값: record, rest_endpoint, ui_page, processor, graphql, pd_action, ux_data_broker, ux_page, ux_route, client_callable_flow_object, client_callable_script_include 기본값: 기록 |
| 활성 | 부울 | ACL 규칙이 적용되었는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 역할 | 배열 | Role 개체의 변수 식별자 또는 사용자가 개체에 액세스하기 위해 가져야 하는 역할 sys_ids입니다. 자세한 내용은 역할 API - ServiceNow Fluent 문서를 참조하십시오. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: 관리자 역할이 사용자에게 다른 모든 역할을 자동으로 부여하기 때문에 관리자 역할을 가진 사용자는 항상 이 권한 검사를 통과합니다. |
| 스크립트 | 스크립트 | 스크립트 태그가 앞에 오는 함수 또는 인라인 스크립트입니다. 사용자 지정 스크립트는 객체에 접근하는 데 필요한 권한을 정의해야 합니다. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: type 속성이 graphql인 경우 스크립트가 지원되지 않습니다. 함수의 경우 JavaScript 모듈에서 익스포트하여 .now.ts 파일로 가져온 함수, 함수 식 또는 기본 함수의 이름을 사용합니다. JavaScript 모듈에 대한 자세한 내용은 다음을 참조하십시오 JavaScript 모듈 및 타사 라이브러리. 인라인 스크립트는 다음과 같은 형식으로 스크립트 태그를 사용합니다.
스크립트는 현재 및 이전 전역 변수와 시스템 속성의 값을 사용할 수 있습니다. 스크립트는 다음 두 가지 방법 중 하나로 true 또는 false 응답을 생성해야 합니다.
주: 평가된 항목이 관련 목록에 있으면 현재 는 ACL이 대상인 현재 항목이 아니라 관련 목록이 있는 항목을 가리킵니다. 그러나 ACL을 평가 중인 항목이 관련 목록에 없는 경우 현재 가 실제 항목을 가리킵니다. |
| admin_overrides | 부울 | 관리자 역할을 가진 사용자가 이 ACL 규칙에 대한 권한 검사를 자동으로 통과하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
admin 사용자는 적용되는 스크립트 또는 역할 제한에 관계없이 통과합니다. 그러나 직원만 ServiceNow 할당할 수 있는 nobody 역할이 admin 재정의 옵션보다 우선합니다. ACL에 nobody 역할이 할당된 경우 admin 사용자는 true인 경우에도 admin_overrides 자원에 액세스할 수 없습니다. 자세한 내용은 기본 시스템 역할을 참조하세요. 기본값: true |
| 조건 | 문자열 | 사용자가 객체에 액세스하기 위해 예여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. |
| 설명 | 문자열 | 이 ACL 규칙이 보호하는 객체 또는 권한에 대한 설명입니다. |
| local_or_existing | 문자열 | 적용할 보안 속성의 유형입니다. 유효한 값은 다음과 같습니다.
기본값: 로컬 |
| security_attribute | 문자열 | 사용할 미리 정의된 조건입니다. 예를 들어, 사용자가 다른 사용자를 가장하고 있는지 여부입니다. 보안 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 OOB (Out-of-Box) Security Attributes. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: 필드가 예로 설정된 보안 속성의 Is localized 경우 ACL의 local_or_existing 속성을 로컬로 설정해야 합니다. 필드가 Is localized false이면 local_or_existing 속성을 기존으로 설정해야 합니다. 유효한 값: role_explicit, group_explicit, user_is_authenticated, impersonating, interactive_session, has_admin_role, role, logged_in, network_criteria, group, allow_unauth_roleless_acl |
| decision_type | 문자열 | ACL이 액세스를 허용해야 하는지 또는 거부해야 하는지 여부입니다. 유효한 값은 다음과 같습니다.
기본값: 허용 |
import { Acl } from "@servicenow/sdk/core";
export default Acl({
$id: Now.ID['task_delete_acl'],
active: true,
admin_overrides: 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',
contains_roles: [managerRole]
})