API de la liste de contrôles d’accès : ServiceNow Fluent
L’API Liste de contrôle d’accès inclut des objets qui définissent les listes de contrôle d’accès [sys_security_acl] qui sécurisent des parties d’une application.
Objet ACL
Configurez une règle d’ACL personnalisée [sys_security_acl] pour sécuriser l’accès à de nouveaux objets ou pour modifier le comportement de sécurité par défaut.
Les ACL doivent inclure un ou plusieurs rôles, un attribut de sécurité, une condition ou un script.
| Nom | Type | Description |
|---|---|---|
| $id | Chaîne ou numéro | Requis. ID unique pour l’objet de métadonnées fourni au format suivant, où < valeur > est une chaîne ou un numéro.Lorsque vous créez l’application, cet ID est haché en une sys_ID unique. |
| table | Chaîne | Le nom de la table à laquelle l’ACL s’applique. Cette propriété ne s’applique et n’est requise que si la propriété type est l’une des valeurs suivantes : ux_data_broker, ux_page, ux_route,_action ou enregistrement. |
| champ | Chaîne | Nom d’un champ sur la table à sécuriser. Vous pouvez utiliser le caractère générique (« * ») pour sélectionner tous les champs.Cette propriété ne s’applique et n’est requise que si la propriété type est l’une des valeurs suivantes : ux_data_broker, ux_page, ux_route,_action ou enregistrement. |
| nom | Chaîne | Nom de l’ACL. Cette propriété ne s’applique et n’est requise que si la propriété type est l’une des valeurs suivantes : rest_endpoint, ui_page, processeur, graphql, client_callable_flow_object ou client_callable_script_include. |
| operation | Chaîne | Requis. Opération sécurisée par cette règle ACL. Une règle ACL ne peut sécuriser qu’une seule opération. Pour sécuriser plusieurs opérations, créez une règle ACL distincte pour chacune d’elles. L’opération doit être exécutée si la propriété de type est client_callable_flow_object, client_callable_script_include, graphql, processeur ou rest_endpoint, Valeurs valides : exécuter, créer, lire, écrire, supprimer, edit_task_relations, edit_ci_relations, save_as_template, add_to_list, report_on, list_edit, report_view, personalize_choices |
| type | Chaîne | Type d’objet sécurisé par cette règle ACL. Le type détermine les opérations disponibles. Après avoir créé une règle ACL, si vous souhaitez modifier le type, vous devez supprimer l’ACL et en créer une nouvelle avec le type correct. Valeurs valides : record, rest_endpoint, ui_page, processor, graphql,_action, ux_data_broker, ux_page, ux_route, client_callable_flow_object, client_callable_script_include Par défaut : enregistrement |
| actif | Booléen | Marqueur indiquant si la règle ACL est appliquée. Valeurs valides :
Par défaut : true |
| roles | Tableau | Identificateurs de variables des objets de rôle ou sys_ids de rôles qu’un utilisateur doit avoir pour accéder à l’objet. Pour plus d'informations, consultez API du rôle : ServiceNow Fluent. Les ACL doivent inclure un ou plusieurs rôles, un attribut de sécurité, une condition ou un script. Remarque : Les utilisateurs disposant du rôle administrateur réussissent toujours cette vérification des autorisations, car le rôle administrateur leur accorde automatiquement tous les autres rôles. |
| script | Script | Fonction ou script en ligne précédé d’une balise de script . Le script personnalisé doit définir les autorisations requises pour accéder à l’objet. Les ACL doivent inclure un ou plusieurs rôles, un attribut de sécurité, une condition ou un script. Remarque : Si la propriété de type est graphql, les scripts ne sont pas pris en charge. Pour les fonctions, utilisez le nom d’une fonction, d’une expression de fonction ou d’une fonction par défaut exportée à partir d’un module JavaScript et importée dans le fichier .now.ts . Pour plus d’informations sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces. Les scripts en ligne utilisent la balise de script au format suivant :
Le script peut utiliser les valeurs des variables globales actuelles et précédentes et des propriétés système. Le script doit générer une réponse vrai ou faux de l’une des deux façons suivantes :
Remarque : Si l’élément évalué se trouve dans une liste connexe, l’élément actuel pointe vers l’élément sur lequel se trouve la liste connexe, et non vers l’élément actuel auquel l’ACL est destinée. Toutefois, si l’élément pour lequel vous évaluez l’ACL n’est pas dans une liste connexe, l’élément actuel pointe vers l’élément réel. |
| admin_overrides | Booléen | Marqueur indiquant si les utilisateurs ayant le rôle administrateur passent automatiquement la vérification des autorisations pour cette règle ACL. Valeurs valides :
Les utilisateurs administrateurs réussissent, quelles que soient les restrictions de script ou de rôle qui s’appliquent. Toutefois, le rôle personne, que seul le ServiceNow personnel peut affecter, prime sur l’option de remplacement administrateur. Si une ACL est affectée au rôle personne, les utilisateurs administrateurs ne peuvent pas accéder à la ressource, même si admin_overrides la valeur est « vrai ». Pour plus d’informations, voir Rôles système de base. Par défaut : true |
| condition | Chaîne | Requête de filtre qui spécifie les champs et les valeurs qui doivent être vrais pour que les utilisateurs puissent accéder à l’objet. Pour plus d'informations, consultez Operators available for filters and queries. Les ACL doivent inclure un ou plusieurs rôles, un attribut de sécurité, une condition ou un script. |
| description | Chaîne | Description de l’objet ou des autorisations que cette règle ACL sécurise. |
| local_or_existing | Chaîne | Le type d’attribut de sécurité à appliquer. Valeurs valides :
Par défaut : local |
| security_attribute | Chaîne | Conditions prédéfinies à utiliser. Par exemple, si un utilisateur emprunte l’identité d’un autre utilisateur. Pour plus d’informations sur les attributs de sécurité, reportez-vous à la section OOB (Out-of-Box) Security Attributes. Les ACL doivent inclure un ou plusieurs rôles, un attribut de sécurité, une condition ou un script. Remarque : Pour les attributs de sécurité dont le Is localized champ est défini sur vrai, la propriété local_or_existing de l’ACL doit être définie sur Local. Si le Is localized champ est faux, la propriété local_or_existing doit être définie sur Existant. Valeurs valides : role_explicit, group_explicit, user_is_authenticated, emprunt d’identité, interactive_session, has_admin_role, rôle, logged_in, network_criteria, groupe, allow_unauth_roleless_acl |
| decision_type | Chaîne | Indique si l’ACL doit autoriser ou refuser l’accès. Valeurs valides :
Par défaut : allow |
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]
})