Compartir a través de


Suplantación en complementos

 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

La suplantación se utiliza para ejecutar la lógica de negocios (código personalizado) en nombre de un usuario del sistema Microsoft Dynamics 365 a fin de proporcionar una característica o servicio deseado para dicho usuario. Cualquier lógica de negocios que se ejecuta en un complemento, incluidas las llamadas al método de servicio web y el acceso a los datos, se rige por los privilegios de seguridad del usuario suplantado.

Los complementos no ejecutados por el servicio de espacio aislado o asincrónico se ejecutan en la cuenta de seguridad especificada en la pestaña Identidad del cuadro de diálogo Propiedades de CRMAppPool. Para tener acceso al cuadro de diálogo, puede hacer clic con el botón secundario en el grupo de aplicaciones CRMAppPool en el Administrador de Internet Information Services (IIS) y, a continuación, hacer clic en Propiedades en el menú contextual. De forma predeterminada, CRMAppPool utiliza la identidad de la cuenta Servicio de red, pero esto lo puede cambiar un administrador del sistema durante la instalación. Si la identidad de CRMAppPool se cambia a una cuenta del sistema que no sea la cuenta Servicio de red, la nueva cuenta de identidad se debe agregar al grupo PrivUserGroup en Active Directory.Más información:TechNet: Cambiar una cuenta de servicio de Microsoft Dynamics CRM o una identidad de AppPool para obtener instrucciones más detalladas.

A continuación, se analizan los dos métodos que se pueden utilizar para suplantar a un usuario.

Suplantación durante el registro de complementos

Un método para suplantar a un usuario del sistema en un complemento consiste en especificar al usuario suplantado durante el registro de complementos. Al registrar un complemento mediante programación, si el atributo SdkMessageProcessingStep.ImpersonatingUserId se establece en un usuario del sistema específico de Microsoft Dynamics 365 , las llamadas de servicio web realizadas por el complemento se ejecutan en nombre del usuario suplantado. Si el atributo ImpersonatingUserId se establece en un valor de null o de Guid.Empty durante el registro de complementos, el usuario que llama/inició la sesión o el usuario del sistema "estándar" es el usuario suplantado.

El hecho de que se utilice al usuario que llama/inició la sesión o al usuario del "sistema" para la suplantación depende de la solicitud que está procesando la canalización y está fuera del ámbito de cobertura de la documentación de SDK. Para obtener más información acerca del usuario del "sistema", consulte el tema siguiente.

Nota

Cuando se registra un complemento con la herramienta de registro de complementos de ejemplo que se incluye en la descarga del SDK, los métodos de servicio que invoca el complemento se ejecutan de manera predeterminada en la cuenta del usuario que llama o que inició la sesión, a menos que seleccione otro usuario en el menú desplegable Ejecutar en contexto de usuario. Para obtener más información acerca del código de ejemplo de la herramienta, consulte el código de herramientas en la carpeta SDK\Tools\PluginRegistration del paquete del SDK.Descargue el paquete de SDK de Microsoft Dynamics CRM.

Suplantación durante la ejecución de complementos

La suplantación definida durante el registro de complementos se puede modificar en un complemento en tiempo de ejecución. Aunque la suplantación no se haya definido durante el registro de complementos, el código del complemento puede usar la suplantación. En el análisis siguiente, se identifican las propiedades y los métodos clave que desempeñan un rol en la suplantación cuando se realizan llamadas al método de servicio web en un complemento.

La plataforma pasa el identificador del usuario suplantado a un complemento en tiempo de ejecución mediante la propiedad UserId. Esta propiedad puede tener uno de tres valores diferentes, como se muestra en la tabla de abajo.

Valor UserId

Condición

Usuario de inicio o usuario del "sistema"

El atributo SdkMessageProcessingStep.ImpersonatingUserId se establece en null o en Guid.Empty en el registro de complementos.

Usuario suplantado

La propiedad ImpersonatingUserId se establece en un identificador de usuario del sistema válido en el registro de complementos.

Usuario del "sistema"

La plataforma ejecutó la canalización actual, no en respuesta directa a una llamada al método de servicio.

La propiedad InitiatingUserId del contexto de ejecución contiene el identificador del usuario del sistema que llamó al método de servicio que, en definitiva, provocó la ejecución del complemento.

Importante

Para los complementos que se ejecutan sin conexión, el usuario que inició la sesión es el propietario de cualquier entidad creada por el complemento. No se admite la suplantación en complementos cuando se trabaja en el modo sin conexión.

Ver también

Desarrollo de complementos
Registrar e implementar complementos
Comprender el contexto de los datos pasados a un complemento
Suplantar a otro usuario

© 2017 Microsoft. Todos los derechos reservados. Copyright