Accessibilité sécurisée avec Apex / Blogs / Perficient

En tant que développeurs Salesforce, il est crucial de garantir que notre code respecte les autorisations et les profils des utilisateurs, en appliquant les contrôles d’accès appropriés. Cela correspond non seulement aux meilleures pratiques, mais préserve également l’intégrité et la sécurité de vos données Salesforce. Dans cet article de blog, nous explorerons comment utiliser les méthodes de base de données disponibles dans Apex pour vérifier l’accessibilité des objets et des champs, et nous inclurons quelques exemples de codage pratiques.
Pourquoi vérifier l’accessibilité des objets et des champs ?
Avant de plonger dans les détails techniques, comprenons les avantages de la vérification de l’accessibilité des objets et des champs :
- Sécurité des données : garantir que les utilisateurs ne peuvent accéder qu’aux données qu’ils sont autorisés à consulter, empêche tout accès non autorisé et protège les informations sensibles.
- Conformité : de nombreux secteurs ont des réglementations strictes en matière de confidentialité des données. La vérification de l’accessibilité permet de maintenir la conformité à ces réglementations.
- Prévention des erreurs : tenter d’accéder à des objets ou des champs qu’un utilisateur n’est pas autorisé à afficher peut entraîner des erreurs d’exécution. Les vérifications préalables peuvent éviter ces erreurs.
- Confiance des utilisateurs : le respect des ensembles d’autorisations et des profils renforce la confiance avec les utilisateurs, garantissant qu’ils bénéficient d’une expérience cohérente et sécurisée.
Comprendre les méthodes de schéma dans Apex
Apex fournit plusieurs méthodes intégrées dans le Schema
classe pour vérifier l’accessibilité des objets et des champs. Ces méthodes permettent d’appliquer des contrôles de sécurité et d’autorisation dans votre code. Les méthodes clés dont nous discuterons sont :
Vérification de l’accessibilité des objets
Pour vérifier si un utilisateur a accès à un objet spécifique, vous pouvez utiliser le Schema.sObjectType
méthode suivie par le isAccessible
méthode sur le DescribeSObjectResult
objet. Voici un exemple :
Exemple : vérification de l’accessibilité des objets
public with sharing class ObjectAccessibilityChecker { public static Boolean isObjectAccessible(String objectName) { Schema.DescribeSObjectResult describeResult = Schema.getGlobalDescribe().get(objectName).getDescribe(); return describeResult.isAccessible(); } public static void exampleUsage() { String objectName="Account"; if (isObjectAccessible(objectName)) { System.debug(objectName + ' is accessible.'); } else { System.debug(objectName + ' is not accessible.'); } } }
Dans cet exemple, isObjectAccessible
prend le nom d’un objet et renvoie true
si l’objet est accessible, et false
sinon. Le exampleUsage
La méthode montre comment utiliser cette fonction.
Vérification de l’accessibilité des champs
Comme pour les objets, vous pouvez vérifier l’accessibilité des champs à l’aide de l’icône Schema.sObjectType
méthode, suivie de getDescribe
sur le terrain et isAccessible
sur le DescribeFieldResult
objet. Voici comment procéder :
Exemple : vérification de l’accessibilité des champs
public with sharing class FieldAccessibilityChecker { public static Boolean isFieldAccessible(String objectName, String fieldName) { Schema.DescribeFieldResult describeFieldResult = Schema.getGlobalDescribe() .get(objectName) .getDescribe() .fields .getMap() .get(fieldName) .getDescribe(); return describeFieldResult.isAccessible(); } public static void exampleUsage() { String objectName="Account"; String fieldName="Phone"; if (isFieldAccessible(objectName, fieldName)) { System.debug(fieldName + ' field of ' + objectName + ' is accessible.'); } else { System.debug(fieldName + ' field of ' + objectName + ' is not accessible.'); } } }
Dans cet exemple, isFieldAccessible
prend le nom d’un objet et d’un champ, et renvoie true
si le champ est accessible, et false
sinon. Le exampleUsage
La méthode montre comment utiliser cette fonction.
Vérification combinée de l’accessibilité des objets et des champs
Parfois, vous souhaiterez peut-être vérifier simultanément l’accessibilité des objets et des champs. Voici un exemple qui combine les deux contrôles :
Exemple : vérification combinée de l’accessibilité des objets et des champs
public with sharing class CombinedAccessibilityChecker { public static Boolean isObjectAndFieldAccessible(String objectName, String fieldName) { Boolean objectAccessible = isObjectAccessible(objectName); if (!objectAccessible) { return false; } Boolean fieldAccessible = isFieldAccessible(objectName, fieldName); return fieldAccessible; } public static Boolean isObjectAccessible(String objectName) { Schema.DescribeSObjectResult describeResult = Schema.getGlobalDescribe().get(objectName).getDescribe(); return describeResult.isAccessible(); } public static Boolean isFieldAccessible(String objectName, String fieldName) { Schema.DescribeFieldResult describeFieldResult = Schema.getGlobalDescribe() .get(objectName) .getDescribe() .fields .getMap() .get(fieldName) .getDescribe(); return describeFieldResult.isAccessible(); } public static void exampleUsage() { String objectName="Account"; String fieldName="Phone"; if (isObjectAndFieldAccessible(objectName, fieldName)) { System.debug(fieldName + ' field of ' + objectName + ' is accessible.'); } else { System.debug(fieldName + ' field of ' + objectName + ' is not accessible.'); } } }
Dans cet exemple, isObjectAndFieldAccessible
vérifie d’abord si l’objet est accessible. Si c’est le cas, il vérifie alors si le champ est accessible. Le exampleUsage
La méthode montre comment utiliser cette fonction.
Conclusion
S’assurer que votre code Apex respecte les autorisations des utilisateurs et les contrôles d’accès est crucial pour créer des applications Salesforce sécurisées et fiables. En utilisant le Schema
méthodes fournies par Apex, vous pouvez facilement vérifier si les objets et les champs sont accessibles à l’utilisateur actuel, appliquant ainsi les meilleures pratiques de sécurité dans votre code.
Récapitulatif des avantages :
- Sécurité des données : empêchez tout accès non autorisé aux données et protégez les informations sensibles.
Conformité : Maintenir le respect des réglementations de l’industrie.
Prévention des erreurs : évitez les erreurs d’exécution dues à un accès non autorisé.
Confiance des utilisateurs : assurez une expérience utilisateur sécurisée et cohérente.
Ces exemples montrent comment implémenter ces vérifications dans vos classes Apex. L’intégration de telles vérifications dans votre code peut aider à empêcher tout accès non autorisé aux données et à maintenir l’intégrité des données dans votre organisation Salesforce.
N’oubliez pas que le respect des autorisations des utilisateurs n’est pas seulement une bonne pratique : c’est essentiel pour maintenir la confiance et la sécurité dans vos applications Salesforce. Bon codage !
Pour plus d’informations, consultez les articles ci-dessous :
Source link