API da lista de controle de acesso - ServiceNow Fluent
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.
| 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.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:
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:
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:
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:
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:
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:
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],
})
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]
})