접근 제어 목록 API - ServiceNow Fluent

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기7분
  • 액세스 제어 목록 API에는 애플리케이션의 일부를 보호하는 액세스 제어 목록[sys_security_acl]을 정의하는 개체가 포함되어 있습니다.

    ACL 객체

    사용자 지정 ACL 규칙 [sys_security_acl]을 구성하여 새 객체에 대한 액세스를 보호하거나 기본 보안 동작을 변경합니다.

    ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다.

    표 1. 속성
    이름 유형 설명
    $id 문자열 또는 숫자 필수 다음 형식으로 제공되는 메타데이터 개체의 고유 ID입니다. 여기서 <value> 는 문자열 또는 숫자입니다.
    $id: Now.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: ACL 규칙이 적용됩니다.
    • false: ACL 규칙이 적용되지 않습니다.

    기본값: true

    역할 배열 Role 개체의 변수 식별자 또는 사용자가 개체에 액세스하기 위해 가져야 하는 역할 sys_ids입니다. 자세한 내용은 역할 API - ServiceNow Fluent 문서를 참조하십시오.

    ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다.

    주:
    관리자 역할이 사용자에게 다른 모든 역할을 자동으로 부여하기 때문에 관리자 역할을 가진 사용자는 항상 이 권한 검사를 통과합니다.
    스크립트 스크립트 스크립트 태그가 앞에 오는 함수 또는 인라인 스크립트입니다. 사용자 지정 스크립트는 객체에 접근하는 데 필요한 권한을 정의해야 합니다.

    ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다.

    주:
    type 속성이 graphql인 경우 스크립트가 지원되지 않습니다.

    함수의 경우 JavaScript 모듈에서 익스포트하여 .now.ts 파일로 가져온 함수, 함수 식 또는 기본 함수의 이름을 사용합니다. JavaScript 모듈에 대한 자세한 내용은 다음을 참조하십시오 JavaScript 모듈 및 타사 라이브러리.

    인라인 스크립트는 다음과 같은 형식으로 스크립트 태그를 사용합니다.
    script: script`gs.info('info')`,
    스크립트는 현재이전 전역 변수와 시스템 속성의 값을 사용할 수 있습니다. 스크립트는 다음 두 가지 방법 중 하나로 true 또는 false 응답을 생성해야 합니다.
    • true 또는 false 값으로 설정된 응답 변수를 반환합니다.
    • True 또는 False로 평가
    두 경우 모두 스크립트가 true로 평가되고 사용자가 ACL 규칙의 조건을 충족하는 경우에만 객체에 액세스할 수 있습니다. 사용자가 객체에 액세스하려면 조건과 스크립트가 모두 true로 평가되어야 합니다.
    주:
    평가된 항목이 관련 목록에 있으면 현재 는 ACL이 대상인 현재 항목이 아니라 관련 목록이 있는 항목을 가리킵니다. 그러나 ACL을 평가 중인 항목이 관련 목록에 없는 경우 현재 가 실제 항목을 가리킵니다.
    admin_overrides 부울 관리자 역할을 가진 사용자가 이 ACL 규칙에 대한 권한 검사를 자동으로 통과하는지 여부를 나타내는 플래그입니다.
    유효한 값은 다음과 같습니다.
    • true: 관리자가 권한 검사를 자동으로 전달합니다.
    • false: 관리자가 보안 개체에 액세스하려면 이 ACL 규칙에 정의된 권한을 충족해야 합니다. condition or script 속성을 사용하여 관리자가 통과해야 하는 권한 검사를 만듭니다.

    admin 사용자는 적용되는 스크립트 또는 역할 제한에 관계없이 통과합니다. 그러나 직원만 ServiceNow 할당할 수 있는 nobody 역할이 admin 재정의 옵션보다 우선합니다. ACL에 nobody 역할이 할당된 경우 admin 사용자는 true인 경우에도 admin_overrides 자원에 액세스할 수 없습니다. 자세한 내용은 기본 시스템 역할을 참조하세요.

    기본값: true

    조건 문자열 사용자가 객체에 액세스하기 위해 예여야 하는 필드와 값을 지정하는 필터 쿼리입니다. 자세한 내용은 Operators available for filters and queries 문서를 참조하십시오.

    ACL에는 하나 이상의 역할, 보안 속성, 조건 또는 스크립트가 포함되어야 합니다.

    설명 문자열 이 ACL 규칙이 보호하는 객체 또는 권한에 대한 설명입니다.
    local_or_existing 문자열 적용할 보안 속성의 유형입니다.
    유효한 값은 다음과 같습니다.
    • 로컬: 생성된 ACL에 대해서만 저장되는 속성을 기반으로 condition 하는 보안 속성입니다.
    • 기존: 속성에서 참조할 기존 보안 속성입니다 security_attribute .

    기본값: 로컬

    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이 액세스를 허용해야 하는지 또는 거부해야 하는지 여부입니다.
    유효한 값은 다음과 같습니다.
    • allow: ACL이 액세스를 허용합니다.
    • deny: 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],
    })
    참조된 역할은 Role 개체를 사용하여 정의됩니다.
    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] 
    })