Fermer

juin 13, 2024

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

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 :

  1. 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.
  2. 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.
  3. 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.
  4. 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 :

Chiffrement de champ Salesforce pour sécuriser les données

Documentation Salesforce | Méthodes de base de données






Source link