Tables de sécurité de champs

Vous utilisez des tables de sécurité de champ pour appliquer la sécurité au niveau du champ, qui limite l’accès au champ pour les utilisateurs et les équipes spécifiés. L’étendue de la sécurité au niveau du champ est globale, ce qui signifie que la sécurité s’applique à tous les enregistrements de l’organisation, indépendamment du niveau hiérarchique de la division auquel l’enregistrement ou l’utilisateur appartient. La sécurité de champ fonctionne dans tous les clients Microsoft Dataverse, notamment le client web, Dynamics 365 for Outlook et Dynamics. Elle s’applique à tous les composants, par exemple les services Web Dataverse, les rapports, la recherche, le mode hors connexion, les vues filtrées, l’audit et la détection des doublons. Pour cette version, la sécurité au niveau du champ peut être appliquée à la fois aux champs personnalisés et à de nombreux champs prêts à l’emploi.

Important

Les profils de sécurité au niveau du champ empêchent les utilisateurs fortuits d’accéder aux données Dataverse selon les définitions de profil. Si les listes de contrôle d’accès SQL Server sont mal configurées ou s’il y a un problème d’injection de code SQL, les adversaires peuvent obtenir un accès direct aux données dans SQL Server, contournant ainsi les restrictions de sécurité au niveau du champ. Pour plus d’informations, voir Vue d’ensemble des menaces de sécurité des applications Web.

Installer et utiliser la sécurité de champ

Pour utiliser la sécurité de champ, vous devez effectuer les opérations suivantes :

  1. Créez un enregistrement de profil de sécurité de champ.

  2. Ajoutez des utilisateurs ou des équipes au profil.

  3. Rechercher une colonne pouvant être sécurisée au niveau du champ.

  4. Sécuriser la colonne, lorsque vous créez la colonne ou que vous mettez à jour la définition de colonne.

  5. Publier les personnalisations

  6. Créez un enregistrement d’autorisation de champ qui définit l’accès (création, mise à jour, lecture) que le profil aura pour la colonne personnalisée.

    Pour obtenir un exemple de code pour effectuer ces opérations, voir Exemple : activer la sécurité des champs pour une entité.

    Utilisez les colonnes d’autorisation de champ suivants pour définir si le profil de sécurité de champ spécifié peut créer, lire ou mettre à jour une colonne. Vous pouvez définir ou comparer la valeur de ces colonnes en utilisant le groupe d’options général field_security_permission_type :

  • FieldPermission. CanCreate

  • FieldPermission. CanRead

  • FieldPermission. CanUpdate

Important

Si les utilisateurs à faibles privilèges bénéficient d’un accès en lecture à l’entité de profil de sécurité de champ, ils peuvent voir les profils des autres utilisateurs et rechercher d’autres utilisateurs qui ont accès aux attributs sécurisés par lesquels ils sont intéressés. Ils peuvent alors utiliser des techniques d’ingénierie sociale pour avoir un profil ayant accès à ces attributs sécurisés.

Quels attributs peuvent être sécurisés ?

Pour afficher les colonnes pouvant être sécurisées, vous pouvez interroger la définition de la table pour les propriétés suivantes :

  • CanBeSecuredForCreate

  • CanBeSecuredForRead

  • CanBeSecuredForUpdate

    Il existe des règles supplémentaires qui s’appliquent à certains types de données d’attribut :

  • Les attributs booléens peuvent être sécurisés pour les opérations de création et de mise à jour, mais pas pour la lecture.

  • Les attributs de groupes d’options peuvent être sécurisés pour la création, la mise à jour et la lecture, lorsqu’une valeur par défaut n’est pas spécifiée.

    Il existe des milliers de colonnes pouvant être sécurisées. Il existe donc deux moyens plus simples de rechercher cette information. Pour afficher la définition de table pour votre organisation, installez la solution Navigateur de définition de table décrite dans l’article Accès à la définition de table de votre environnement. Vous pouvez également accéder à la documentation de référence pour les entités dans Référence de table/d’entité.

Partager les champs sécurisés

Vous pouvez partager les champs sécurisés autant que vous pouvez partager les enregistrements. Pour cela, vous créez, mettez à jour ou supprimez un enregistrement PrincipalObjectAttributeAccess (partage de champ), où vous spécifiez l’utilisateur ou l’équipe, l’entité et les autorisations.

Le tableau suivant répertorie les méthodes correspondantes pour sécuriser un champ par rapport à un enregistrement.

Partage d’un enregistrement Partage de l’accès à un champ
Utilisez le message GrantAccessRequest pour accorder les droits d’accès à un utilisateur ou une équipe. Utilisez le message CreateRequest ou la méthode IOrganizationService.Create pour accorder l’accès au champ sécurisé à un utilisateur ou une équipe.
Utilisez le message ModifyAccessRequest pour mettre à jour les droits d’accès d’un utilisateur ou d’une équipe. Utilisez le message UpdateRequest ou la méthode IOrganizationService.Update pour mettre à jour l’accès au champ sécurisé à un utilisateur ou une équipe.
Utilisez le message RevokeAccessRequest pour supprimer l’accès à un enregistrement à un utilisateur ou à une équipe. Utilisez le message DeleteRequest ou la méthode IOrganizationService.Delete pour supprimer l’accès au champ sécurisé à un utilisateur ou une équipe.

Voir aussi

Sécurité et accès aux données
Entité FieldSecurityProfile
Entité FieldPermission
Entité PrincipalObjectAttributeAccess

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).