Integreret Windows-godkendelse med IIS, Firefox og SQL Server

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et websted, der kører på IIS på mit lokalehost. Dette websted har bibliotekssikkerhed indstillet til kun at tillade Integreret Windows-godkendelse. Det er en del af et intranet og skal godkendes af vores domæne konti.


Jeg forbinder derefter til SQL Server med integreret sikkerhed=SSPI i forbindelsesstrengen.


Dette virker fint med Microsoft Internet Explorer, det autentificerer mig automatisk, da jeg er logget ind på domænet, og jeg kan se, at logon\_user er min domænekonto, og SQL Server-forbindelsestrengen virker helt fint.


Men når jeg logger ind ved hjælp af Firefox, er tingene forskellige.


For det første bliver jeg bedt om at godkende, hvilket er fint og korrekt, da Firefox ikke er konfigureret til at stole på det lokalehost nok til automatisk at sende legitimationsoplysninger (og jeg er faktisk klar over, hvordan man introducerer denne tillid allerede, dette er ikke problemet). Jeg logger derefter ind, hvilket igen er fint, forudsat at jeg indtaster domænekontooplysningerne, er alt fint. Faktisk viser en fejlretningsopstilling eller to, at logon\_user stadig er min domæne konto, og alt er fint.


Men når jeg kommer til at oprette forbindelse til SQL Server (som kører på en fjernserver-boks, som min domæne konto har fulde sysadmin privilegier), får jeg følgende fejl:


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


Dette indikerer for mig, at noget er forkert i autentificeringsstakken, af en eller anden årsag kører IIS ikke som den godkendte konto, når jeg godkender ved hjælp af Windows-godkendelse fra Firefox.


Dette virker også fint, når du bruger Google Chrome.


Nogen forslag?

Bedste reference


Som noteret af Pontus Gagge, skal IIS passere en Kerberos billet til SQL Server. Det var nok til at tipse min Google-fu i den rigtige retning. [4]


Firefox understøtter Kerberos, men du skal fortælle det, hvilke domæner det stoler på at sende Kerberos tokens også.



  1. Åbn Firefox

  2. I adresselinjetypen: om: config

  3. Firefox3.x og senere kræver, at du er enig i, at du vil fortsætte med forsigtighed.

  4. Når konfigurationssiden er indlæst, skal du i filterboksen skrive: network.negotiate-auth

  5. Rediger network.negotiate-auth.trusted-uris ved at dobbeltklikke på rækken og indtaste yourdomain.com

  6. Flere domæner kan tilføjes med komma, der afgrænser dem som yourdomain.com, yourotherdomain.com



Bemærk: Dette er ikke det samme som gbn's løsning, der bare konfigurerer firefox til ikke at bede dig om at indtaste domænekontooplysninger ved login.


Hvis du allerede har forsøgt at godkende via stakken i din nuværende Firefox-session, skal du genstarte Firefox, for at dette kan fungere.

Andre referencer 1



  1. Åbn Firefox

  2. I adresselinjetypen: om: config

  3. Firefox3.x og senere kræver, at du er enig i, at du vil fortsætte med forsigtighed.

  4. Når konfigurationssiden er indlæst, skal du i filterboksen skrive: network.automatic

  5. Rediger network.automatic-ntlm-auth.trusted-uris ved at dobbeltklikke på rækken og indtaste http://www.replacewithyoursite.com

  6. Flere websteder kan tilføjes med komma, der afgrænser dem som http://www.replacewithyoursite.com, http://www.replacewithyourintranetsite.com



Jeg bruger også IEtab add-on til intranetsites [7] [8] [9]

Andre referencer 2


IIS skal passere en Kerberos billet til SQL Server for at dette scenario skal fungere. MSIE henter arbejdsplads sessionsbilletten, mens Firefox forhandler sin egen godkendelse (og ikke Kerberos). [10]


Tjek f.eks. Denne tætte blogbog er et udgangspunkt for at forstå, hvad der er nødvendigt. Jeg er ikke sikker på, om FF understøtter MS-Kerberos. [11]


Vær opmærksom på, at selv ved at få MSIE-> IIS-> SQL Server-godkendelse kan være vanskelig, hvis du har forkerte versioner eller tillidskonfiguration ...