Pregunta

Parece que no puedo tropezar con la combinación correcta de la configuración de IIS / ASP.NET para lograr lo siguiente:

  1. Todos los usuarios en un dominio interno deberían poder acceder al sitio IIS (con autenticación NTLM), y la aplicación ASP.NET debería poder obtener el nombre de usuario del usuario actual (también conocido como < strong> el usuario se autentica como ellos mismos ).
  2. La aplicación ASP.NET en ejecución debería poder ejecutar ciertas acciones bajo una cuenta de Administrador . Por ejemplo, un cambio de Active Directory o escribir archivos en ubicaciones restringidas.

Probablemente puedas adivinar, pero el objetivo de la aplicación es permitir que "normal" los usuarios hacen específico "Administrativo" cambios a través de la aplicación web. Al mismo tiempo, el cambio debe registrarse con el " normal " cuenta de usuario, por lo que no quiero perder las credenciales del usuario autenticado.

Buscando la configuración específica en IIS6 para lograr el # 1 (cualquier usuario en el dominio para acceder al sitio y ser autenticado como ellos mismos), junto con el código para el # 2.

¿Fue útil?

Solución

Hay al menos dos opciones:

Común para ambos:

  • Su configuración de IIS debe establecerse en la autenticación de Windows.
  • La identidad del usuario se puede leer desde el contexto http.

Opción 1:

  • Establecer suplantación = falso
  • Establezca la identidad del grupo de aplicaciones para un usuario que tenga derecho a realizar cambios en AD
  • Agregue el usuario anterior al grupo IIS_WPG

Opción 2:

  • Al realizar los cambios de AD, configure la identidad del hilo a la de un usuario al que se le permita hacer los cambios de AD

Para la opción 2, aquí hay un ejemplo de código que utiliza el usuario de suplantación:

http://msdn.microsoft.com /en-us/library/system.security.principal.windowsimpersonationcontext.aspx

Otros consejos

Desde el punto de vista de la seguridad, el mejor enfoque sería separar todas las operaciones administrativas en su propio servicio web que autentique, pero no suplante. Su parte normal del sitio realizaría las operaciones administrativas llamando al servicio web, como cualquier otro cliente, incluso si es una llamada localhost.

De esta forma se logra el aislamiento entre el grupo de aplicaciones normal (que suplanta) y el grupo de aplicaciones privilegiado (el administrativo).

Finalmente, esto quizás está dividiendo pelos, pero debería ser la autenticación Kerberos, no NTLM, porque NTLM no permite delegación restringida y su aplicación 'normal' deberá habilitarse para la delegación si accede a cualquier cosa fuera del host IIS local.

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