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

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 5 minutes de lecture
  • 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.

    Tableau 1. Propriétés
    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.
    $id: Now.ID[<value>]

    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 :
    • true : la règle ACL est appliquée.
    • false : la règle ACL n’est pas appliquée.

    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 :
    script: script`gs.info('info')`,
    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 :
    • Renvoyer un jeu de variables de réponse à 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 définis sur vrai pour qu’un utilisateur puisse accéder à l’objet.
    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 :
    • vrai : les administrateurs passent automatiquement la vérification des autorisations.
    • faux : les administrateurs doivent posséder les autorisations définies dans cette règle ACL pour accéder à l’objet sécurisé. Utilisez les condition propriétés OU script pour créer une vérification des autorisations que les administrateurs doivent vérifier.

    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 :
    • Local : attribut de sécurité basé sur la condition propriété qui est enregistré uniquement pour l’ACL dans laquelle il est créé.
    • Existant : attribut de sécurité existant à référencer dans la security_attribute propriété.

    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 :
    • allow : l’ACL autorise l’accès.
    • deny : l’ACL refuse l’accès.

    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],
    })
    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', 
       contains_roles: [managerRole] 
    })