Pregunta

Tenga en cuenta: en cada paso que describo a continuación, inicie sesión como la misma cuenta de usuario de dominio.

Tengo una aplicación web que controla un servicio en una máquina remota (a través de ServiceController ). Cuando me conecto al sitio web de forma remota e intento controlar el servicio, recibo una excepción de operación no válida: acceso denegado.

Sé que PUEDE funcionar, porque cuando me conecto al sitio web desde el servidor web (escritorio remoto, inicio de sesión como mi usuario de dominio y luego abro la página web), funciona como se esperaba.

He configurado IIS y ASP.NET para requerir autenticación y suplantación de Windows. Registro el principal del subproceso actual cuando esto falla y veo que el subproceso se ejecuta bajo mi identidad, ya sea que me conecte de forma remota o desde el servidor mismo.

He intentado forzar a IIS a usar la autenticación Kerberos, la autenticación NTLM y ambas al mismo tiempo; si mi director informa su AuthenticationType como " Negociar " o "NTLM" No importa. Ninguno de ellos funciona cuando me conecto de forma remota (desde mi máquina local)

OTRA cosa extraña acerca de esto es que si estoy depurando desde mi máquina local / conectando al servidor remoto, ¡funciona todo el tiempo! Pero NO estoy depurando, ¡falla siempre!

¿Qué diablos podría estar pasando aquí?

¿Fue útil?

Solución

Su escenario es delegación y no suplantación. La delegación es difícil de lograr y depende de muchas cosas que se hacen correctamente.

Un lugar para comenzar sería Autenticación Kerberos y solución de problemas de delegación

El blog de David Wang es un recurso muy útil en miles de temas.

Otros consejos

" OTRA cosa extraña acerca de esto es que si estoy depurando desde mi máquina local / conectando al servidor remoto, ¡funciona todo el tiempo! Pero NO estoy depurando, ¡falla cada vez! ''

Esa es una clara indicación de que tiene problemas de permisos. Cuando se ejecuta en el depurador, se está ejecutando como el usuario conectado, cuando no se está depurando, se ejecuta como lo que IIS está configurado para usar (SERVICIO DE RED por defecto). Intente configurar (¡temporalmente!) La opción Habilitar acceso anónimo utilizando su cuenta de dominio como usuario y vea si eso funciona. Si lo hace, significa que su IIS no está configurado correctamente para suplantar (y probablemente se esté ejecutando como SERVICIO DE RED).

Los permisos en IIS pueden ser un poco c h para afinar correctamente ... ¡Buena suerte!

P / S: Esto se parece más a una pregunta de administración de red que a una de programación (consulte https://stackoverflow.com/questions/321618/stackoverflow-is-for-programming-questions-here-are-some-better-forums-for-your # 321756 )

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top