Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La suplantación es la capacidad de una aplicación de servidor para asumir la identidad del cliente. Es habitual que los servicios usen la suplantación al validar el acceso a los recursos. La aplicación de servidor se ejecuta mediante una cuenta de servicio, pero cuando el servidor acepta una conexión de cliente, suplanta al cliente para que las comprobaciones de acceso se realicen mediante las credenciales del cliente. La seguridad de transporte es un mecanismo para pasar credenciales y proteger la comunicación mediante esas credenciales. En este tema se describe el uso de la seguridad de transporte en Windows Communication Foundation (WCF) con la característica de suplantación. Para obtener más información sobre la suplantación mediante la seguridad de mensajes, consulte Delegación y suplantación.
Cinco niveles de suplantación
La seguridad de transporte usa cinco niveles de suplantación, como se describe en la tabla siguiente.
Nivel de suplantación | Descripción |
---|---|
Ninguno | La aplicación de servidor no intenta suplantar al cliente. |
Anónimo | La aplicación de servidor puede realizar comprobaciones de acceso en las credenciales del cliente, pero no recibe información sobre la identidad del cliente. Este nivel de suplantación solo es significativo para la comunicación en equipo, como, por ejemplo, en canalizaciones con nombre. Al utilizar Anonymous con una conexión remota, se promueve el nivel de suplantación a identificar. |
Identificar | La aplicación de servidor conoce la identidad del cliente y puede realizar la validación de acceso con las credenciales del cliente, pero no puede suplantar al cliente. El nivel de suplantación predeterminado es Identificación, que se utiliza con credenciales SSPI en WCF, a menos que el proveedor de tokens ofrezca un nivel de suplantación diferente. |
Suplantar | La aplicación de servidor puede acceder a los recursos de la máquina del servidor como cliente además de realizar comprobaciones de acceso. La aplicación de servidor no puede acceder a los recursos de las máquinas remotas mediante la identidad del cliente porque el token suplantado no tiene credenciales de red. |
Delegar | Además de tener las mismas funcionalidades que Impersonate , el nivel de suplantación delegado también permite que la aplicación de servidor acceda a los recursos de las máquinas remotas mediante la identidad del cliente y pase la identidad a otras aplicaciones.Importante La cuenta de dominio del servidor debe configurarse como de confianza para delegación en el controlador de dominio, a fin de utilizar estas características adicionales. Este nivel de suplantación no se puede usar con cuentas de dominio de cliente marcadas como confidenciales. |
Los niveles que se usan con más frecuencia con la seguridad de transporte son Identify
y Impersonate
. Los niveles None
y Anonymous
no se recomiendan para uso típico, y muchos transportes no admiten el uso de esos niveles con autenticación. El Delegate
nivel es una característica eficaz que se debe usar con cuidado. Solo las aplicaciones de servidor de confianza deben tener permiso para delegar las credenciales.
El uso de la suplantación en los niveles Impersonate
o Delegate
exige que la aplicación de servidor tenga el privilegio SeImpersonatePrivilege
. Una aplicación tiene este privilegio de forma predeterminada si se ejecuta en una cuenta del grupo Administradores o en una cuenta con un SID de servicio (servicio de red, servicio local o sistema local). La suplantación no requiere la autenticación mutua del cliente y el servidor. Algunos esquemas de autenticación que admiten la suplantación, como NTLM, no se pueden usar con la autenticación mutua.
Transport-Specific Problemas con la suplantación
La opción de un transporte en WCF afecta a las posibles opciones de suplantación. Esta sección describe problemas que afectan a HTTP estándar y a los transportes de canalización con nombre en WCF. Los transportes personalizados tienen sus propias restricciones sobre la compatibilidad con la suplantación.
Transporte de canalización con nombre
Los elementos siguientes se utilizan con el transporte de canalización con nombre:
El transporte de canalización con nombre solo está pensado para su uso en el equipo local. El transporte de canalización con nombre en WCF rechaza explícitamente las conexiones entre equipos.
Las canalizaciones con nombre no se pueden utilizar con
Impersonate
o el nivel de suplantaciónDelegate
. La canalización con nombre no puede exigir la garantía en equipo en estos niveles de suplantación.
Para obtener más información sobre las canalizaciones con nombre, consulte Elección de un transporte.
Transporte HTTP
Los enlaces que usan el transporte HTTP (WSHttpBinding y BasicHttpBinding) admiten varios esquemas de autenticación, como se explica en Descripción de la autenticación HTTP. El nivel de suplantación admitido depende del esquema de autenticación. Los siguientes elementos se usan con el transporte HTTP:
El
Anonymous
esquema de autenticación omite la suplantación.El
Basic
esquema de autenticación solo admite elDelegate
nivel . Todos los niveles de suplantación inferiores se actualizan.El esquema de autenticación
Digest
solo admite los nivelesImpersonate
yDelegate
.El esquema de autenticación
NTLM
, que se puede seleccionar directamente o a través de la negociación, solo admite el nivelDelegate
en el equipo local.El esquema de autenticación Kerberos, que solo se puede seleccionar a través de la negociación, se puede usar con cualquier nivel de suplantación admitido.
Para obtener más información sobre el transporte HTTP, consulte Elección de un transporte.