Emprunt d’identité des plug-ins

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

L’emprunt d’identité permet d’exécuter une logique métier (code personnalisé) au nom d’un utilisateur système Microsoft Dynamics 365 pour fournir une fonctionnalité ou un service souhaité à cet utilisateur. Toute logique métier exécutée dans un plug-in, notamment les appels de méthode de service Web et l’accès aux données, est régie par les privilèges de sécurité de l’utilisateur dont l’identité a été empruntée.

Les plug-ins non exécutés par le bac à sable (sandbox) ou le service asynchrone s’exécutent sous le compte de sécurité spécifié sous l’onglet Identité de la boîte de dialogue Propriétés CRMAppPool. La boîte de dialogue est accessible en cliquant avec le bouton droit sur le pool d’applications CRMAppPool du Gestionnaire Internet Information Services (IIS), puis en cliquant sur Propriétés dans le menu contextuel. Par défaut, CRMAppPool utilise l’identité du compte de service réseau, mais ce peut être modifié par un administrateur système pendant l’installation. Si l’identité CRMAppPool est modifiée en un compte système autre que le service réseau, le nouveau compte d’identité doit être ajouté au groupe PrivUserGroup dans Active Directory.Pour plus d'informations :TechNet : Modifier un compte de service ou une identité AppPool Microsoft Dynamics CRM pour obtenir des instructions plus détaillées.

Les deux méthodes qui peuvent servir à emprunter l’identité d’un utilisateur sont décrites ci-après.

Emprunt d’identité pendant l’inscription du plug-in

Une méthode pour emprunter l’identité d’un utilisateur système dans un plug-in consiste à spécifier l’utilisateur dont l’identité a été empruntée pendant l’inscription du plug-in. Lors de l’inscription d’un plug-in par programme, si l’attribut SdkMessageProcessingStep.ImpersonatingUserId est défini sur un utilisateur système Microsoft Dynamics 365 spécifique, les appels du service Web effectués par le plug-in s’exécutent au nom de l’utilisateur représenté. Si ImpersonatingUserId est défini sur une valeur null ou Guid.Empty pendant l’inscription du plug-in, l’utilisateur appelant/connecté ou l’utilisateur standard « système » est l’utilisateur représenté.

Le fait que l’utilisateur appelant/connecté l’utilisateur ou l’utilisateur « système » soit utilisé ou pas pour l’emprunt d’identité dépend de la demande traitée par le pipeline et ne relève pas de la documentation du SDK. Pour plus d’informations sur l’utilisateur « système », consultez le rubrique suivante.

Notes

Lorsque vous inscrivez un plug-in à l’aide de l’outil d’inscription d’exemple de plug-in fourni dans le téléchargement du Kit SDK, les méthodes de service appelées par le plug-in s’exécutent sous le compte de l’utilisateur appelant ou connecté par défaut, à moins que vous ne sélectionniez un autre utilisateur dans le menu déroulant Exécuter dans le contexte utilisateur. Pour plus d’informations sur le code de l’exemple d’outil, consultez le code de l’outil sous le dossier SDK\Tools\PluginRegistration du package SDK.Téléchargez le package Kit de développement logiciel (SDK) de Microsoft Dynamics CRM.

Emprunt d’identité pendant l’exécution du plug-in

L’emprunt d’identité défini au cours de l’inscription du plug-in peut être modifié dans un plug-in au moment de l’exécution. Même si l’emprunt d’identité n’a pas été définie à l’inscription du plug-in, le code du plug-in peut toujours utiliser l’emprunt d’identité. La discussion suivante identifie les propriétés et les méthodes principales qui jouent un rôle dans l’emprunt d’identité lors des appels de méthode de service Web dans un plug-in.

La plateforme passe l’ID de l’utilisateur représenté à un plug-in au moment de l’exécution via la propriété UserId. Cette propriété peut avoir une des trois valeurs différentes comme l’illustre le tableau ci-dessous.

UserId Valeur

Condition

Initialisation d’un utilisateur ou utilisateur « système »

L’attribut SdkMessageProcessingStep.ImpersonatingUserId est défini sur la valeur null ou Guid.Empty à l’inscription du plug-in.

Utilisateur représenté

La propriété ImpersonatingUserId est définie sur un ID utilisateur système valide à l’inscription du plug-in.

Utilisateur « système »

Le pipeline actuel a été exécuté par la plateforme, et non en réponse directe à un appel de méthode de service.

La propriété InitiatingUserId du contexte d’exécution contient l’ID de l’utilisateur système qui a appelé la méthode de de service ayant entraîné l’exécution du plug-in.

Important

Pour les plug-ins s’exécutant hors connexion, toutes les entités créées par le plug-in appartiennent à l’utilisateur connecté. L’emprunt d’identité des plug-ins n’est pas pris en charge en mode hors connexion.

Voir aussi

Développement de plug-ins
Inscrire et déployer des plug-ins
Comprendre le contexte de données passé à un plug-in
Emprunter l’identité d’un autre utilisateur

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright