válidos son servidor remoto los error encabezados configurar como autorizado autenticación autenticacion ruby-on-rails active-directory ntlm

ruby on rails - son - Recuperar datos de usuario de NTLM Active Directory en Rieles sin IIS



web config autenticacion windows (7)

Creo que podemos permitir que Firefox envíe datos NTLM a los sitios de SharePoint para realizar la autenticación automática, y creo que esto es factible con IIS.

Me gustaría hacer lo mismo con un sitio interno de Rails.

¿Alguien sabe de qué manera podría autenticar la información de usuario de tipo NTLM a través de una configuración de Apache / mongrel (siempre que, por supuesto, ya se ejecute en un cuadro de Windows dentro de un dominio de Active Directory)?


Supongo que ya ha calculado qué encabezados HTTP necesita enviar para que Firefox y IE envíen de vuelta las cosas de autenticación NTLM, y solo necesitan manejar eso en el lado del servidor.

Puede usar algunas de las bibliotecas de win32 de ruby ​​para acceder a las funciones de autenticación de Windows subyacentes que manejan el NTLM.

Sugeriría que la ruta de menor resistencia podría ser ver si hay un componente COM que pueda hacer la autenticación por usted, y si es así, usarlo usando la biblioteca de ruby ​​Win32OLE.

Si no hay un componente COM, es posible que pueda encontrar algo en una de esas otras bibliotecas que pueda invocar los métodos nativos win32 por usted.

Si no puede encontrar eso, tendrá que escribir una extensión de rubí C. He hecho esto en Linux, y extender ruby ​​es bastante fácil, pero es posible que la API de autenticación de Microsoft sea un poco dolorosa.

Espero que empieces por el buen camino :-)


También puede usar el módulo Apache ntlm , que debe pasar un encabezado hacia adelante a su aplicación con el nombre de usuario del usuario autenticado. Ese módulo parece un poco viejo, pero sugiere algunos otros módulos que pueden adaptarse a sus necesidades.


Creé un tutorial sobre cómo instalar el módulo parcheado mod_ntlm para Apache en Linux y cómo pasar el nombre de usuario autenticado NTLM a Rails y cómo crear una sesión de Rails a partir de eso. Por lo tanto, como resultado, no necesita el servidor de Windows para ejecutar la aplicación Rails.

Allí también puede encontrar la forma de habilitar la autenticación automática NTLM en Firefox: ingrese "about: config" en el campo de ubicación y luego busque "network.automatic-ntlm-auth.trusted-uris". Allí puede ingresar servidores para los cuales le gustaría usar autenticación automática NTLM.



Un poco de información extra en caso de que alguien tropiece con esto.

Quería hacer algo que pensé que debería ser bastante simple: extraer el nombre de usuario de windows de los usuarios utilizando NTLM desde una aplicación Rails que se ejecuta en Mongrel / Windows (InstantRails en realidad). Después de haber escrito el código básico, administro las diversas operaciones de handshaking (usando la gran biblioteca NTLMRuby en http://rubyforge.org/projects/rubyntlm/ ) y habiendo funcionado maravillosamente en Firefox, me sentí algo frustrado al encontrar que IE no funcionaba.

Mongrel no admite keep-alives durante el intercambio de mensajes type1 / 2/3 (al menos de forma nativa, creo que hay un hack / fix), que IE exige y Firefox se las arregla sin él.

De modo que autenticar un servidor de Rails que se ejecuta en Windows contra un servicio NTLM remoto (por ejemplo, Sharepoint u otro sitio web) es bastante directo, pero autenticar un navegador IE contra un servidor de Rails que se ejecuta en Windows no tanto con Mongrel. IIS sería una opción, como podría ser Apache básico con FastCGI. El primero se siente un poco torpe y el segundo no será tan rápido como Mongrel.



Echa un vistazo a Waffle . Proporciona SSO en servidores de Windows a Java que utilizan Win32 API. Hay una serie de filtros implementados (servlet, tomcat valve, spring-security).