API da lista de controle de acesso - ServiceNow Fluent

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 5 min. de leitura
  • A API da lista de controle de acesso inclui objetos que definem listas de controle de acesso [sys_security_acl] que protegem partes de uma aplicação.

    Objeto de ACL

    Configure uma regra de ACL personalizada [sys_security_acl] para proteger o acesso a novos objetos ou para mudar o comportamento de segurança padrão.

    As ACLs devem incluir uma ou mais funções, um atributo de segurança, uma condição ou um script.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    $id Cadeia de caracteres ou número Obrigatório. Um ID exclusivo para o objeto de metadados fornecido no seguinte formato, em que<value> é uma cadeia de caracteres ou um número.
    $id: Now.ID[<value>]

    Quando você cria a aplicação, esse ID é convertido em um sys_ID exclusivo.

    tabela Cadeia de caracteres O nome da tabela à qual a ACL se aplica.

    Esta propriedade só se aplica e é necessária se a propriedade de tipo for um dos seguintes valores: ux_data_broker, ux_page, ux_route, pd_action ou record.

    Assunto: Cadeia de caracteres O nome de um campo na tabela a ser protegido. Você pode usar o caractere curinga ("*") para selecionar todos os campos.

    Esta propriedade só se aplica e é necessária se a propriedade de tipo for um dos seguintes valores: ux_data_broker, ux_page, ux_route, pd_action ou record.

    nome Cadeia de caracteres O nome da ACL.

    Esta propriedade só se aplica e é necessária se a propriedade de tipo for um dos seguintes valores: rest_endpoint, ui_page, processador, graphql, client_callable_flow_object ou client_callable_script_include.

    operação Cadeia de caracteres Obrigatório. A operação que esta regra de ACL protege. Uma regra de ACL só pode proteger uma operação. Para proteger várias operações, crie uma regra de ACL separada para cada uma.

    A operação deve ser executada se a propriedade de tipo for client_callable_flow_object, client_callable_script_include, graphql, processador ou rest_endpoint,

    Valores válidos: executar, criar, ler, gravar, excluir, edit_task_relations, edit_ci_relations, save_as_template, add_to_list, report_on, list_edit, report_view, personalize_choices

    tipo Cadeia de caracteres O tipo de objeto que esta regra de ACL protege. O tipo determina quais operações estão disponíveis.

    Depois de criar uma regra de ACL, se você quiser mudar o tipo, deverá excluir a ACL e criar uma nova com o tipo correto.

    Valores válidos: record, rest_endpoint, ui_page, Processor, graphql, pd_action, ux_data_broker, ux_page, ux_route, client_callable_flow_object, client_callable_script_include

    Padrão: registro

    ativo Booliano Sinalizador que indica se a regra de ACL é imposta.
    Valores válidos:
    • verdadeiro: a regra de ACL é imposta.
    • falso: a regra de ACL não é imposta.

    Padrão: verdadeiro

    funções Matriz Os identificadores de variáveis de objetos de função ou sys_ids de funções que um usuário deve ter para acessar o objeto. Para obter mais informações, consulte API de função - ServiceNow Fluent.

    As ACLs devem incluir uma ou mais funções, um atributo de segurança, uma condição ou um script.

    Nota:
    Os usuários com a função de administrador sempre passam nesta verificação de permissões porque a função de administrador concede automaticamente aos usuários todas as outras funções.
    script Script Uma função ou script em linha precedido por um marcador de script. O script personalizado deve definir as permissões necessárias para acessar o objeto.

    As ACLs devem incluir uma ou mais funções, um atributo de segurança, uma condição ou um script.

    Nota:
    Se a propriedade de tipo for graphql, os scripts não serão compatíveis.

    Para funções, use o nome de uma função, expressão de função ou função padrão exportada de um módulo JavaScript e importada para o arquivo .now.ts. Para obter informações sobre módulos JavaScript, consulte Módulos JavaScript e bibliotecas de terceiros.

    Os scripts em linha usam o marcador de script no seguinte formato:
    script: script`gs.info('info')`,
    O script pode usar os valores das variáveis globais atuais e anteriores e as propriedades do sistema. O script deve gerar uma resposta verdadeira ou falsa de uma de duas maneiras:
    • retornar um conjunto de variáveis de resposta definida como um valor verdadeiro ou falso
    • avaliar como verdadeiro ou falso
    Em ambos os casos, os usuários só ganham acesso ao objeto quando o script é avaliado como verdadeiro e o usuário atende a todas as condições da regra de ACL. As condições e o script devem ser avaliados como verdadeiros para que um usuário acesse o objeto.
    Nota:
    Se o item avaliado estiver em uma lista relacionada, o atual apontará para o item no qual está a lista relacionada, não para o item atual ao qual a ACL se destina. No entanto, se o item para o qual você está avaliando a ACL não estiver em uma lista relacionada, o atual apontará para o item real.
    admin_overrides Booliano Sinalizador que indica se os usuários com a função de administrador são aprovados automaticamente na verificação de permissões para esta regra de ACL.
    Valores válidos:
    • verdadeiro: os administradores são aprovados automaticamente na verificação de permissões.
    • falso: os administradores devem atender às permissões definidas nesta regra de ACL para obter acesso ao objeto protegido. Use as propriedades condition ou script para criar uma verificação de permissões que os administradores devem passar.

    Os usuários administradores são aprovados independentemente das restrições de script ou função aplicáveis. No entanto, a função ninguém, que somente o pessoal ServiceNow pode atribuir, tem precedência sobre a opção de substituição de administrador. Se uma ACL for atribuída à função ninguém, os usuários administradores não poderão acessar o recurso mesmo quando admin_overrides for verdadeiro. Para obter mais informações, consulte Funções do sistema de base.

    Padrão: verdadeiro

    condição Cadeia de caracteres Uma consulta de filtro que especifica os campos e valores que devem ser verdadeiros para que os usuários acessem o objeto. Para obter mais informações, consulte Operators available for filters and queries.

    As ACLs devem incluir uma ou mais funções, um atributo de segurança, uma condição ou um script.

    descrição Cadeia de caracteres Uma descrição do objeto ou das permissões que esta regra de ACL protege.
    local_ou_existente Cadeia de caracteres O tipo de atributo de segurança a ser aplicado.
    Valores válidos:
    • Local: um atributo de segurança baseado na propriedade condition que é salvo somente para a ACL em que foi criado.
    • Existente: um atributo de segurança existente a ser referenciado na propriedade security_attribute.

    Padrão: local

    security_attribute Cadeia de caracteres Condições predefinidas a serem usadas. Por exemplo, se um usuário está representando outro usuário. Para obter mais informações sobre atributos de segurança, consulte OOB (Out-of-Box) Security Attributes.

    As ACLs devem incluir uma ou mais funções, um atributo de segurança, uma condição ou um script.

    Nota:
    Para atributos de segurança com o campo Is localized definido como verdadeiro, a propriedade local_or_existing da ACL deve ser definida como Local. Se o campo Is localized for falso, a propriedade local_or_existing deverá ser definida como Existente.

    Valores válidos: role_explicit, group_explicit, user_is_authenticated, representação, interativo_session, has_admin_role, função, conectado_em, network_criteria, grupo, allow_unauth_roleless_acl

    Decision_type Cadeia de caracteres Se a ACL deve permitir ou negar o acesso.
    Valores válidos:
    • allow: a ACL permite o acesso.
    • deny: a ACL nega o acesso.

    Padrão: permitir

    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],
    })
    As funções referenciadas são definidas usando o objeto Função :
    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] 
    })