2009-04-09 34 views
14

Tengo un sitio web ejecutándose en IIS en mi servidor local. Este sitio web tiene una seguridad de directorio configurada para permitir solo la Autenticación de Windows integrada. Es parte de una intranet y necesita autenticarse por nuestras cuentas de dominio.Autenticación de Windows integrada con IIS, Firefox y SQL Server

Luego me conecto a SQL Server con Integrated Security = SSPI en la cadena de conexión.

Esto funciona bien con Microsoft Internet Explorer, me autentica automáticamente ya que estoy conectado al dominio, y puedo ver que logon_user es mi cuenta de dominio, y la cadena de conexión de SQL Server funciona bien.

Sin embargo, cuando inicio sesión con Firefox, las cosas son diferentes.

En primer lugar, me piden que autentique, lo cual es correcto y correcto ya que Firefox no está configurado para confiar en el servidor local lo suficiente como para enviar credenciales automáticamente (y estoy consciente de cómo introducir esta confianza, este no es el problema) Luego, inicio de sesión, lo cual está bien, siempre que ingrese los detalles de la cuenta de dominio todo está bien. De hecho, una declaración de depuración o dos muestran que logon_user sigue siendo mi cuenta de dominio y todo está bien.

Sin embargo, cuando vaya a conectarse a SQL Server (que se ejecuta en un cuadro de servidor remoto, a la que mi cuenta de dominio con privilegios de administrador de sistemas completos), me sale el siguiente error:

Microsoft OLE DB Provider for SQL Server (0x80040E4D) 
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'. 

Esto indica para mí, que algo está mal en la pila de autenticación, por alguna razón, IIS no se ejecuta como la cuenta autenticada cuando me autentico usando la autenticación de Windows desde Firefox.

Esto también funciona bien cuando se usa Google Chrome.

¿Alguna sugerencia?

+0

¿Está ejecutando SQL e IIS en la misma máquina? – Tomalak

+0

No, SQL Server se encuentra en un servidor seguro remoto. – THEMike

Respuesta

27

AS noted por Pontus Gagge, IIS debe pasar un ticket Kerberos a SQL Server. Eso fue suficiente para inclinar mi Google-fu en la dirección correcta.

Firefox admite Kerberos, pero debe indicarle en qué dominios confía para enviar también los tokens de Kerberos.

  1. abierto Firefox
  2. En la barra de direcciones teclee: about: config
  3. Firefox3.x y posteriormente requiere que usted de acuerdo en que se procederá con precaución.
  4. Después se carga la página de configuración, en el tipo de caja de filtro: network.negotiate-auth
  5. Modificar network.negotiate--URI auth.trusted haciendo doble clic en la fila e introduzca yourdomain.com
  6. múltiples dominios pueden ser agregado por comas delimitando ellos, tales como yourdomain.com, yourotherdomain.com

Nota: Esta esno lo mismo que gbn 's solution el cual es utilizado para configurar Firefox para que no se le pedirá que introduzca los datos de la cuenta de dominio en logi norte.

Además, si ya ha intentado autenticarse a través de la pila en su sesión actual de Firefox, tendrá que reiniciar Firefox para que esto funcione.

+0

Para el registro, continué teniendo el problema después de realizar estos cambios en Firefox Developer Edition usando http: // localhost como el dominio. También tuve que hacer la solución de gbn a continuación para pasar el mensaje "Error de inicio de sesión ...". Fue una combinación de agregar el URI en los dos lugares que finalmente funcionó. Confirmé que eliminar uno u otro causa que el problema regrese. – PhilDearmore

+0

Disculpe, hablé demasiado pronto. Después de verificarlo dos veces, resulta que el único que necesito configurar es network.automatic-ntlm-auth.trusted-uris. – PhilDearmore

5
  1. abierto Firefox
  2. En la barra de direcciones teclee: about: config
  3. Firefox3.x y posteriormente requiere que usted de acuerdo en que se procederá con precaución.
  4. Después se carga la página de configuración, en el tipo de caja de filtro: network.automatic
  5. Modificar network.automatic-ntlm-auth.trusted-URI haciendo doble clic en la fila y escriba http://www.replacewithyoursite.com
  6. sitios múltiples pueden ser añadidos por comas delimitando ellos, tales como http://www.replacewithyoursite.com, http://www.replacewithyourintranetsite.com

también uso IETab complemento para los sitios de la intranet

+0

Sé cómo hacer esto, lo eludí de pasada, esto no es un problema. El hecho de que cuando me he autenticado, no pasará eso a SQL Server es el problema. – THEMike

5

IIS necesita para pasar un boleto Kerberos a SQL Server para este escenario para trabajar. MSIE está recogiendo el ticket de sesión de la estación de trabajo, mientras que Firefox está negociando su propia autenticación (y no Kerberos).

Echa un vistazo a. this dense blog post como punto de partida para comprender lo que se necesita. No estoy seguro si FF admite MS-Kerberos.

Tenga en cuenta que incluso obtener la autenticación MSIE-> IIS-> SQL Server puede ser complicado si tiene las versiones incorrectas o la configuración de confianza ...

Cuestiones relacionadas