2009-04-09 13 views
14

Ho un sito Web in esecuzione su IIS sul mio localhost. Questo sito Web ha la sicurezza delle directory impostata per consentire solo l'autenticazione integrata di Windows. Fa parte di una rete intranet e deve essere autenticato dai nostri account di dominio.Autenticazione integrata di Windows con IIS, Firefox e SQL Server

Mi collego quindi a SQL Server con Integrated Security = SSPI nella stringa di connessione.

Questo funziona perfettamente con Microsoft Internet Explorer, esso autentica automaticamente me quando sono connesso al dominio e posso vedere che logon_user è il mio account di dominio e la stringa di connessione di SQL Server funziona correttamente.

Tuttavia, quando accedo utilizzando Firefox, le cose sono diverse.

In primo luogo, viene richiesto di autenticare, il che è corretto e corretto poiché Firefox non è configurato per fidarsi dell'host locale quanto basta per inviare automaticamente le credenziali (e in effetti sono consapevole di come introdurre questa fiducia già, non è questo il problema). Accedo quindi, che di nuovo va bene, purché inserisco i dettagli dell'account del dominio, tutto va bene. In effetti, una dichiarazione di debug o due mostrano che logon_user è ancora il mio account di dominio e tutto va bene.

Tuttavia, quando vengo a connettersi a SQL Server (che è in esecuzione su un contenitore di server remoto, al quale il mio account di dominio ha privilegi completi sysadmin), ottengo il seguente errore:

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

Indica per me che qualcosa non va nello stack di autenticazione, per qualche ragione, IIS non è in esecuzione come account autenticato quando autenticarsi usando l'autenticazione di windows da firefox.

Anche questo funziona correttamente quando si utilizza Google Chrome.

Qualche suggerimento?

+0

Stai eseguendo SQL e IIS sulla stessa macchina? – Tomalak

+0

No, SQL Server si trova su un server sicuro remoto. – THEMike

risposta

27

AS noted di Pontus Gagge, IIS deve passare un ticket Kerberos a SQL Server. Questo è stato sufficiente per far rientrare il mio Google-fu nella giusta direzione.

Firefox supporta Kerberos, ma, devi dirgli quali domini si fida di inviare anche i token Kerberos.

  1. Apri Firefox
  2. Nella barra degli indirizzi digitare: about: config
  3. Firefox3.x e successivamente richiede di concordare sul fatto che si procederà con cautela.
  4. Dopo il caricamento della pagina di configurazione, nel tipo scatola filtro: network.negotiate-auth
  5. Modificare network.negotiate-auth.trusted-uris facendo doppio clic sulla riga e inserire yourdomain.com
  6. domini multipli possono essere aggiunto da virgola delimitando loro, come yourdomain.com, yourotherdomain.com

Nota: Questo è non la stessa gbn s' solution che ha appena configura Firefox per non chiederà di inserire i dettagli dell'account di dominio su logi n.

Inoltre, se si è già tentato di eseguire l'autenticazione attraverso lo stack nella sessione corrente di Firefox, sarà necessario riavviare Firefox affinché funzioni.

+0

Per la cronaca, ho continuato a riscontrare il problema dopo aver apportato queste modifiche in Firefox Developer Edition utilizzando http: // localhost come dominio. Ho dovuto anche fare la soluzione di gbn qui sotto per superare il messaggio "Login failed ...". Era una combinazione di aggiungere l'URI nei due posti che alla fine ha funzionato. Ho confermato che la rimozione di una o l'altra causa la restituzione del problema. – PhilDearmore

+0

Scusa, ho parlato troppo presto. Dopo averlo ricontrollato, si scopre che l'unica cosa di cui ho bisogno è la rete.automatic-ntlm-auth.trusted-uris. – PhilDearmore

5
  1. Apri Firefox
  2. Nella barra degli indirizzi digitare: about: config
  3. Firefox3.x e successivamente richiede di concordare sul fatto che si procederà con cautela.
  4. Dopo il caricamento della pagina di configurazione, nel tipo scatola filtro: network.automatic
  5. Modificare network.automatic-NTLM-auth.trusted-URI con un doppio clic sulla riga e immettere http://www.replacewithyoursite.com
  6. siti multipli possono essere aggiunti virgola li delimita come http://www.replacewithyoursite.com, http://www.replacewithyourintranetsite.com

io uso anche IETab add-on per i siti Intranet

+0

So come farlo, ne sono sfuggito di sfuggita, questo non è un problema. Il fatto che quando mi sono autenticato, non passerà questo a SQL Server è il problema. – THEMike

5

IIS deve passare un biglietto Kerberos a SQL Server per questo scenario di lavorare. MSIE sta acquisendo il ticket di sessione della workstation, mentre Firefox sta negoziando la propria autenticazione (e non Kerberos).

Check out ad es. this dense blog post come punto di partenza per capire cosa è necessario. Non sono sicuro che FF supporti MS-Kerberos.

Si noti che anche ottenere l'autenticazione MSIE-> IIS-> SQL Server può essere complicato se si hanno le versioni sbagliate o la configurazione di attendibilità ...

Problemi correlati