접근 제어 목록 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 규칙을 생성합니다. type 속성이 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 기본값: 기록 |
| active | 부울 | ACL 규칙이 적용되는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 역할 | 배열 | Role 개체의 변수 식별자 또는 사용자가 개체에 액세스하는 데 필요한 역할 sys_ids입니다. 자세한 내용은 역할 API - ServiceNow Fluent 문서를 참조하십시오. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: 관리자 역할은 사용자에게 다른 모든 역할을 자동으로 부여하므로 관리자 역할이 있는 사용자는 항상 이 권한 검사를 통과합니다. |
| 스크립트 | 스크립트 | 스크립트 태그 앞에 오는 함수 또는 인라인 스크립트입니다. 사용자 지정 스크립트는 객체에 접근하는 데 필요한 권한을 정의해야 합니다. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: type 속성이 graphql인 경우 스크립트가 지원되지 않습니다. 함수의 경우 JavaScript 모듈에서 내보내고 .now.ts 파일로 가져온 함수, 함수 표현식 또는 기본 함수의 이름을 사용합니다. JavaScript 모듈에 대한 자세한 내용은 을 참조하십시오 JavaScript 모듈 및 타사 라이브러리. 인라인 스크립트는 다음 형식으로 script 태그를 사용합니다.
스크립트는 현재 및 이전 전역 변수와 시스템 속성의 값을 사용할 수 있습니다. 스크립트는 다음 두 가지 방법 중 하나로 True 또는 False 응답을 생성해야 합니다.
주: 평가된 항목이 관련 목록에 있는 경우 current 는 ACL이 있는 현재 항목이 아니라 관련 목록이 있는 항목을 가리킵니다. 그러나 ACL을 평가하는 항목이 관련 목록에 없으면 현재 가 실제 항목을 가리킵니다. |
| admin_overrides | 부울 | 관리자 역할을 가진 사용자가 이 ACL 규칙에 대한 권한 검사를 자동으로 통과할지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
관리자 사용자는 적용되는 스크립트 또는 역할 제한에 관계없이 통과합니다. 그러나 직원만 ServiceNow 할당할 수 있는 nobody 역할은 관리자 재정의 옵션보다 우선합니다. ACL에 nobody 역할이 할당된 경우 관리자 사용자는 예일 경우에도 admin_overrides 자원에 액세스할 수 없습니다. 자세한 내용은 기본 시스템 역할을 참조하세요. 기본값: true |
| condition | 문자열 | 사용자가 객체에 액세스할 수 있도록 예여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. |
| description | 문자열 | 이 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 속성을 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]
})