API de la liste de contrôles d’accès : ServiceNow Fluent

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 8 minutes de lecture
  • L’API Liste de contrôle d’accès définit des listes de contrôle d’accès [sys_security_acl] qui sécurisent certaines parties d’une application.

    Pour des informations générales sur les listes de contrôle d’accès (ACL), reportez-vous à la section Access Control List Rules.

    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.

    Tableau 1. Propriétés
    Nom Type Description
    $id Chaîne ou numéro Requis. ID unique pour l’objet de métadonnées. Lorsque vous créez l’application, cet ID est haché en une sys_id unique. Pour en savoir plus, consultez ServiceNow Fluent Constructions linguistiques.

    Format : Now.ID['chaîne' ou numéro]

    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’entre 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 :
    • execute : autorisez les utilisateurs à exécuter des scripts sur un enregistrement ou une page d’interface utilisateur.
    • créer : autoriser les utilisateurs à insérer de nouveaux enregistrements (lignes) dans une table.
    • read : autoriser les utilisateurs à afficher les enregistrements d’une table.
    • write : autoriser les utilisateurs à mettre à jour les enregistrements d’une table.
    • supprimer : autorisez les utilisateurs à supprimer des enregistrements d’une table ou à abandonner une table.
    • conditional_table_query_range : permet aux utilisateurs de donner un accès ACL partiel en fonction des ACL en lecture. Créé pour les tables qui ont les ACL de lecture sans condition de données ni script.
    • data_fabric : Permettez aux utilisateurs d’autoriser les connecteurs Data Fabric à accéder aux données d’une table particulière.
    • query_match : permet aux utilisateurs de soumettre des requêtes de correspondance (telles que « est », « n’est pas » et « est vide »).
    • query_range : permet aux utilisateurs de soumettre des requêtes de plage (telles que « commence par », « se termine par » et « contient ») et le tri est illimité.
    • edit_task_relations : Autorisez les utilisateurs à étendre la table Tâche [task].
    • edit_ci_relations : Autorisez les utilisateurs à étendre la table Élément de configuration [cmdb_ci].
    • save_as_template : Autorisez les utilisateurs à enregistrer un enregistrement en tant que modèle.
    • add_to_list : Autoriser les utilisateurs à afficher ou personnaliser des colonnes spécifiques dans la mécanique de liste. Les conditions et les scripts ne sont pas pris en charge.
    • report_on : Autorisez les utilisateurs à générer des rapports sur les tables.
    • list_edit : Autorisez les utilisateurs à mettre à jour des enregistrements (lignes) à partir d’une liste.
    • report_view : autoriser les utilisateurs à générer des rapports sur les ACL de champ.
    • personalize_choices : Autorisez les utilisateurs à configurer la table ou le champ.
    type Chaîne Requis. 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 :
    • enregistrement
    • rest_endpoint
    • ui_page
    • processeur
    • graphql
    • pd_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 :
    • true : la règle ACL est appliquée.
    • false : la règle ACL n’est pas appliquée.

    Par défaut : true

    adminOverrides Booléen Marqueur indiquant si les utilisateurs ayant le rôle administrateur réussissent automatiquement la vérification des autorisations pour cette règle ACL.
    Valeurs valides :
    • vrai : les administrateurs réussissent automatiquement la vérification des autorisations.

      Si vrai, les utilisateurs administrateurs réussissent la vérification des autorisations, quelles que soient les restrictions de script ou de rôle applicables. Toutefois, le rôle personne, que seul le ServiceNow personnel peut affecter, l’emporte 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 adminOverrides est vrai. Pour plus d’informations, voir Rôles système de base.

    • faux : les administrateurs doivent disposer des autorisations définies dans cette règle ACL pour accéder à l’objet sécurisé. Utilisez les propriétés de condition ou de script pour créer une vérification des autorisations que les administrateurs doivent vérifier.

    Par défaut : true

    script Script Script personnalisé qui définit les autorisations requises pour accéder à l’objet. Cette propriété prend en charge une fonction d’un module JavaScript, une référence à un autre fichier dans l’application qui contient un script ou JavaScript en ligne.

    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.
    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 deux manières :
    • Renvoyer une variable de réponse définie sur une valeur vrai ou faux
    • Évaluer à vrai ou faux
    Dans les deux cas, les utilisateurs n’accèdent à l’objet que lorsque le script est évalué comme vrai et qu’ils remplissent toutes les conditions de la règle ACL. Les conditions et le script doivent être considérés comme vrais pour qu’un utilisateur puisse accéder à l’objet.
    Remarque :
    Si l’élément évalué se trouve dans une liste connexe, current 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 ne se trouve pas dans une liste connexe, la liste actuelle pointe vers l’élément réel.
    Format :
    • 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 importez-la dans le fichier .now.ts . Pour en savoir plus sur les modules JavaScript, reportez-vous à la section Modules JavaScript et bibliothèques tierces.
    • Pour utiliser le contenu textuel d’un autre fichier, reportez-vous à un fichier de l’application en utilisant le format suivant : Now.include('chemin/vers/fichier'). Pour plus d'informations, consultez ServiceNow Fluent Constructions linguistiques.
    • Pour fournir un script inline, utilisez des chaînes de caractères ou des modèles de lignes de code : « Script » ou « Script ».
    description Chaîne Description de l’objet ou des autorisations sécurisés par cette règle ACL.
    localOuExistant Chaîne Type d’attribut de sécurité à appliquer.
    Valeurs valides :
    • Local : attribut de sécurité basé sur la propriété de condition qui est enregistré uniquement pour l’ACL dans laquelle il est créé.
    • Existant : attribut de sécurité existant à référencer dans la propriété security_attribute .

    Par défaut : local

    Type de décision Chaîne Une option indiquant si l’ACL doit autoriser ou refuser l’accès.
    Valeurs valides :
    • allow : l’ACL autorise l’accès.
    • deny : l’ACL refuse l’accès.

    Par défaut : allow

    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 en savoir plus, 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.

    roles Tableau Liste d’identificateurs de variables d’objets de rôle ou de 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 ayant le rôle administrateur réussissent toujours cette vérification des autorisations car le rôle administrateur leur accorde automatiquement tous les autres rôles.
    securityAttribute Chaîne Conditions prédéfinies à utiliser par l’ACL. 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é localOrExisting de l’ACL doit être définie sur Local. Si le Is localized champ est faux, la propriété localOrExisting doit être définie sur Existing.
    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 dans la table à sécuriser. Vous pouvez utiliser le caractère générique (« * ») pour sélectionner tous les champs.
    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.

    $meta Objet Métadonnées pour les métadonnées de l’application.
    Avec la propriété installMethod , vous pouvez mapper les métadonnées d’application à un répertoire de sortie qui ne se charge que dans des circonstances spécifiques.
    $meta: {
          installMethod: 'String'
    }
    Valeurs valides pour installMethod :
    • demo : génère les métadonnées de l’application dans le répertoire metadata/unload.demo à installer avec l’application lorsque l’option Charger les données de démonstration est sélectionnée.
    • première installation : génère les métadonnées de l’application dans le répertoire metadata/unload à installer uniquement la première fois qu’une application est installée sur une instance.
    import { Acl } from "@servicenow/sdk/core";
    
    export default Acl({
        $id: Now.ID['task_delete_acl'],
        active: true,
        adminOverrides: true,
        type: 'record',
        table: 'task',
        field: 'description',
        operation: 'delete',
        roles: [adminRole, managerRole],
    })
    Les rôles référencés sont définis à l’aide de l’objet Rôle :
    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', 
       containsRoles: [managerRole] 
    })