Pass-through NTLM authentication en una aplicación web en un servidor de correo IMAP

Necesito usar la autenticación NTLM en mi aplicación web contra un servidor de correo IMAP. La autenticación en la aplicación web en sí también es NTLM. Por lo tanto, el usuario abre la interfaz de la aplicación web y el extremo del servidor web toma la bandeja de entrada de ese usuario en la autentificación del servidor de correo a través de NTLM. ¿Es posible si nunca guardo (ni tengo acceso a) la contraseña del usuario?

¿Hay alguna forma de vincular el navegador del cliente y el servidor IMAP a través de mi aplicación web para que el intercambio de tokens ocurra entre ellos y yo solo actuaría como una puerta de enlace entre ellos. O, ¿hay algún otro método para realizar esta tarea sin conocer la contraseña?

La aplicación web puede ser asp.net/iis o php / apache. Cualquiera de las opciones me funcionará.

Parece que ayer tuve un mal día, de lo contrario no tengo idea de por qué no pude resolverlo porque es muy simple.

Si la autenticación de Windows está habilitada, la aplicación web ya obtiene el contexto de ese usuario interactivo que accedió a la aplicación. Luego puedo autenticarme contra el servidor IMAP compatible con NTLM a través de la Autenticación de Windows integrada de la misma manera que lo haría en una aplicación de escritorio.

Es decir, el punto clave es que no hay necesidad en la aplicación web de pasar el token NTLM del navegador al servidor IMAP de alguna manera. Es solo un proceso de dos etapas: primero, el navegador (ejecutando bajo usuario interactivo) crea token NTLM a través de funciones winapi y lo envía a la aplicación web para que finalmente la aplicación adquiera ese contexto de usuario interactivo; luego, la aplicación web que se ejecuta bajo el El contexto de usuario interactivo crea un nuevo token a través de las mismas funciones winapi y lo envía al servidor IMAP.