API de liste de contrôle d’accès : ServiceNow Fluent
L’API de 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 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 nombre.Lorsque vous créez l’application, cet ID est haché dans un sys_ID unique. |
| table | Chaîne | Nom de la table à laquelle l’ACL s’applique. Cette propriété s’applique uniquement et est requise 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 de la table à sécuriser. Vous pouvez utiliser le caractère générique (« * ») pour sélectionner tous les champs.Cette propriété s’applique uniquement et est requise 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é s’applique uniquement et est requise 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. L’opération que cette règle ACL sécurise. 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é type est client_callable_flow_object, client_callable_script_include, graphql, processor 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 que cette règle ACL sécurise. Le type détermine les opérations qui sont 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 approprié. 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 :
Valeur par défaut : true |
| roles | Tableau | Les identificateurs variables des objets de rôle ou sys_ids des rôles qu’un utilisateur doit avoir pour accéder à l’objet. Pour plus d'informations, consultez API de 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 d’autorisation, car le rôle administrateur accorde automatiquement aux utilisateurs 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é 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é à partir d’un module JavaScript et importé dans le fichier .now.ts . Pour en savoir plus sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces. Les scripts inline utilisent la balise 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, current pointe vers l’élément sur lequel se trouve la liste associée, et non vers l’élément actuel auquel l’ACL est destinée. Toutefois, si l’élément dont vous évaluez l’ACL ne se trouve pas dans une liste connexe, actuel pointe vers l’élément réel. |
| admin_overrides | Booléen | Marqueur indiquant si les utilisateurs disposant du rôle administrateur réussissent automatiquement la vérification des autorisations pour cette règle ACL. Valeurs valides :
Les utilisateurs administrateurs transmettent, quelles que soient les restrictions de script ou de rôle qui s’appliquent. Toutefois, le rôle personne, que seul ServiceNow le personnel peut affecter, a priorité sur l’option de remplacement administrateur. Si le rôle personne est affecté à une ACL, les utilisateurs administrateurs ne peuvent pas accéder à la ressource, même si admin_overrides la valeur est vrai. Pour plus d’informations, consultez Rôles système de base. Valeur 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 | 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 en savoir plus 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 : autoriser |
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]
})