Dans ServiceNow, la sécurité des données est un enjeu crucial. Pour garantir que les utilisateurs n’accèdent qu’aux informations qui leur sont autorisées, ServiceNow utilise un mécanisme puissant : les ACL (Access Control List).
Si vous débutez en tant qu’administrateur ou développeur sur la plateforme, comprendre les bases des ACL est indispensable pour construire un système sécurisé, fiable et évolutif.
Qu’est-ce qu’une ACL dans ServiceNow ?
Une ACL (Access Control List) est une règle de sécurité qui définit qui peut voir, modifier, créer ou supprimer des données dans ServiceNow.
Chaque ACL détermine l’accès à une table, un champ ou un enregistrement selon :
- Le type d’objet (table, champ)
- L’opération (lecture, écriture, suppression, création)
- Une condition optionnelle (basée sur les données du formulaire)
- Un script (pour une logique avancée)
Exemple simple :
Une ACL peut permettre aux utilisateurs de lire un incident uniquement s’ils en sont le demandeur ou s’ils appartiennent à un certain groupe.
Comment fonctionnent les ACL dans ServiceNow ?
Quand un utilisateur tente d’accéder à une donnée, ServiceNow vérifie une série d’ACL dans un ordre hiérarchique :
- Table – none – : Donne ou bloque l’accès global à la table entière. Ce type d’ACL contrôle l’accès sans cibler de champ spécifique.
- Table . Field : Permet un contrôle plus précis sur des champs spécifiques d’une table. Il est utile pour restreindre la visibilité ou l’édition de certains champs, même si l’accès général à la table est autorisé.
- Script (si présent) * : Ce script s’exécute pour valider ou refuser l’accès à la ressource. Il doit retourner true pour que l’action demandée (lecture, écriture, suppression…) soit autorisée.
Toutes les conditions doivent être remplies (rôle, condition ET script) pour que l’accès soit accordé
Structure d’une règle ACL
Une règle ACL comporte plusieurs éléments :
- Type : table ou champ
- Opération : create, read, write, delete
- Nom : table ou champ concerné
- Rôles : qui peut effectuer l’opération
- Condition : optionnelle, ex. État = Ouvert
- Script : JavaScript personnalisé retournant true ou false
Comment créer une ACL dans ServiceNow ?
- Élevez vos droits (rôle security_admin)
- Allez dans : System Security > Access Control (ACL)
- Cliquez sur New
- Renseignez les champs :
- Type : table ou champ
- Opération : read, write, etc.
- Nom de la table ou champ ciblé
- Condition (facultative)
- Script (si nécessaire)
- Cliquez sur Submit
les 5 bonnes pratiques pour gérer les ACL
1. Utilisez les rôles intelligemment
- Appliquez la règle du moindre privilège
- Donnez à chaque utilisateur uniquement ce dont il a besoin
- Structurez vos rôles de manière claire
2. Combinez conditions simples et scripts
- Privilégiez les conditions (plus lisibles)
- Utilisez les scripts pour les cas complexes
- Limitez les scripts trop lourds (impact sur les performances)
3. Testez toujours dans un environnement non-productif
- Vérifiez chaque scénario : rôles, groupes, types d’accès
- Simulez des cas d’erreurs et de succès
4. Documentez vos ACL
- Expliquez à quoi sert chaque ACL
- Notez les conditions, scripts et rôles utilisés
- Facilite la maintenance et l’onboarding d’autres développeurs
5. Évitez l’excès d’ACL au niveau champ
- Les ACL de champ sont utiles mais complexes à maintenir
- Utilisez-les uniquement pour protéger des données sensibles
- Préférez des ACL de table pour une gestion plus simple
Debugger les ACL dans ServiceNow
ServiceNow propose des outils pour identifier quelles ACLs s’appliquent et pourquoi un accès est autorisé ou refusé.
Debug Security Rules :
- Cliquez sur votre profil utilisateur
- Activez Debug Security Rules
- Accédez à un enregistrement
- Une fenêtre montre toutes les ACL évaluées et leurs résultats (OK/Refusé)
Test ACL :
- Chaque ACL possède un bouton “Test”
- Permet de simuler un accès pour un rôle ou utilisateur
Pièges courants à éviter
- ACL en double ou contradictoires : cela génère de la confusion
- Accès trop large : n’accordez pas de privilèges globaux inutiles
- Manque de tests : testez tous les cas possibles (y compris les erreurs)
- ACL non documentées : cela rend la maintenance difficile
Les ACL dans ServiceNow sont un outil puissant pour protéger vos données. En tant qu’administrateur ou développeur :
- Comprenez la hiérarchie et la logique d’évaluation
- Utilisez les rôles et conditions avec discernement
- Testez et documentez systématiquement
En appliquant ces bonnes pratiques, vous pouvez construire un système sécurisé, robuste, et conforme aux exigences de votre organisation.