접근 제어 목록 API - ServiceNow Fluent
접근 제어 목록 API는 애플리케이션의 일부를 보호하는 접근 제어 목록[sys_security_acl]을 정의합니다.
ACL(접근 제어 목록)에 대한 일반적인 정보는 다음 문서를 참조하십시오 Access Control List Rules.
ACL 객체
사용자 지정 ACL 규칙 [sys_security_acl]을 구성하여 새 객체에 대한 액세스를 보호하거나 기본 보안 동작을 변경합니다.
ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| $id | 문자열 또는 숫자 | 필수 메타데이터 객체의 고유 ID입니다. 애플리케이션을 빌드할 때 이 ID는 고유한 sys_id으로 해시됩니다. 자세한 내용은 ServiceNow Fluent 언어 구성 문서를 참조하십시오. 형식: |
| 운영 | 문자열 | 필수 이 ACL 규칙이 보호하는 작업입니다. ACL 규칙은 하나의 작업만 보호할 수 있습니다. 여러 운영의 보안을 유지하려면 각각에 대해 별도의 ACL 규칙을 생성합니다. 유형 속성이 client_callable_flow_object, client_callable_script_include, graphql, processor 또는 rest_endpoint인 경우 작업을 유효한 값은 다음과 같습니다.
|
| 유형 | 문자열 | 필수 이 ACL 규칙이 보호하는 객체의 유형입니다. 유형에 따라 사용 가능한 작업이 결정됩니다. ACL 규칙을 생성한 후 유형을 변경하려면 ACL을 삭제하고 올바른 유형으로 새 ACL을 생성해야 합니다. 유효한 값은 다음과 같습니다.
기본값: 기록 |
| 활성 | 부울 | ACL 규칙이 적용되는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| admin재정의 | 부울 | 관리자 역할을 가진 사용자가 이 ACL 규칙에 대한 권한 검사를 자동으로 통과하는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
기본값: true |
| 스크립트 | 스크립트 | 객체에 접근하는 데 필요한 권한을 정의하는 사용자 지정 스크립트입니다. 이 속성은 JavaScript 모듈의 함수, 스크립트가 포함된 애플리케이션의 다른 파일에 대한 참조 또는 인라인 JavaScript를 지원합니다. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: type 속성이 graphql이면 스크립트가 지원되지 않습니다.스크립트는 현재 및 이전 전역 변수와 시스템 속성의 값을 사용할 수 있습니다. 스크립트는 다음 두 가지 방법 중 하나로 true 또는 false 응답을 생성해야 합니다.
주: 평가된 항목이 관련 목록에 있으면 current 는 ACL이 있는 현재 항목이 아니라 관련 목록이 있는 항목을 가리킵니다. 그러나 ACL을 평가하는 항목이 관련 목록에 없으면 current 가 실제 항목을 가리킵니다.체재:
|
| 설명 | 문자열 | 이 ACL 규칙이 보호하는 객체 또는 권한에 대한 설명입니다. |
| 로컬 또는 기존 | 문자열 | 적용할 보안 속성의 유형입니다. 유효한 값은 다음과 같습니다.
기본값: local |
| 결정 유형 | 문자열 | ACL이 접근을 허용할지 또는 거부할지 여부에 대한 옵션입니다. 유효한 값은 다음과 같습니다.
기본값: 허용 |
| 조건 | 문자열 | 사용자가 객체에 액세스하려면 예여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. |
| 역할 | 배열 | 역할 객체의 변수 식별자 목록이거나 사용자가 객체에 액세스하기 위해 가져야 하는 역할 sys_ids입니다. 자세한 내용은 역할 API - ServiceNow Fluent 문서를 참조하십시오. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: 관리자 역할은 사용자에게 다른 모든 역할을 자동으로 부여하므로 관리자 역할을 가진 사용자는 항상 이 권한 검사를 통과합니다. |
| security속성 | 문자열 | ACL이 사용할 미리 정의된 조건입니다. 예를 들어, 사용자가 다른 사용자를 가장하는지 여부입니다. 보안 속성에 대한 자세한 내용은 다음 문서를 참조하십시오 OOB (Out-of-Box) Security Attributes. ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다. 주: 필드가 Is localized 예로 설정된 보안 속성의 경우 ACL의 localOrExisting 속성을 Local로 설정해야 합니다. 필드가 Is localized false이면 localOrExisting 속성을 Existing으로 설정해야 합니다. |
| 테이블 | 문자열 | ACL이 적용되는 테이블의 이름입니다. 이 속성은 유형 속성이 ux_data_broker, ux_page, ux_route, pd_action 또는 기록 값 중 하나인 경우에만 적용되고 필요합니다. |
| 필드 | 문자열 | 보호할 테이블의 필드 이름입니다. 와일드카드 문자("*")를 사용하여 모든 필드를 선택할 수 있습니다. |
| 이름 | 문자열 | ACL의 이름입니다. 이 속성은 유형 속성이 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]
})