Autenticazione di Windows su IIS sul server locale con URL completo


9

Ho un'applicazione web impostata in IIS 7 configurata con l'autenticazione di Windows. Posso eseguire l'autenticazione sulla macchina tramite l'URL completo di qualsiasi altra macchina e utilizza il dominio appropriato. Tuttavia, quando provo a connettermi alla macchina da se stesso tramite il dominio completo (o in un altro servizio o semplicemente tramite url in IE), il prompt di Accesso a Windows tenta di forzare l'uso del computer come dominio e non il dominio appropriato per l'accesso. Tentativo di specificare il dominio con domain\usernameo username@domain.comnon riuscito.

Devo notare che la visualizzazione dell'applicazione Web tramite localhostsul computer funziona, ma l'utilizzo site.company.com/webservicedell'URL completo non funziona sul computer locale, poiché il dominio di accesso è errato. Cosa posso fare per farlo utilizzare il dominio di accesso corretto?

Risposte:


11

Stavo cercando di fare la stessa cosa. Accedi a un sito Web sull'IIS locale utilizzando un nome di dominio completo (FQDN) e continua a sentirmi dire dove andare da IIS.

Ad ogni modo, dal mio scavo, devi disabilitare il controllo di loopback per i siti Web IIS locali.

Vedere la seguente pagina di supporto Microsoft .

Nel caso in cui la pagina scompaia, ho fatto quanto segue (che è quello che mi consiglia nel post di blog sopra)

  1. Apri l'editor del registro digitando regedit in Esegui.
  2. Passare a HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
  3. Fare clic con il tasto destro del mouse su MSV1_0 e fare clic su Nuovo e scegliere di impostarlo come valore multistringa.
  4. Immettere BackConnectionHostNames come nome per la voce e fare doppio clic per modificarlo.
  5. Digita i nomi host che devi utilizzare (code-journey.com per esempio).
  6. Riavvia il servizio IISAdmin ("Start" -> "Strumenti di amministrazione" -> "Servizi")

Spero che sia di aiuto.

CMB ..


4

Ciò è dovuto a una funzione di sicurezza nota come LoopbackCheck.

Messaggio di errore quando si tenta di accedere a un server localmente utilizzando il nome FQDN o l'alias CNAME dopo l'installazione di Windows Server 2003 Service Pack 1: "Accesso negato" o "Nessun provider di rete ha accettato il percorso di rete specificato"
http://support.microsoft .com / kb / 926.642

Esistono due risoluzioni:

Metodo 1 (consigliato): creare i nomi host dell'autorità di sicurezza locale a cui è possibile fare riferimento in una richiesta di autenticazione NTLM. Per fare ciò, attenersi alla seguente procedura per tutti i nodi sul computer client:

  1. Fare clic su Start, scegliere Esegui, digitare regedit e quindi fare clic su OK.
  2. Individuare e quindi fare clic sulla seguente sottochiave del registro: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0
  3. Fare clic con il pulsante destro di MSV1_0, scegliere Nuovo, quindi fare clic su Valore multistringa.
  4. Nella colonna Nome, digitare BackConnectionHostNames e quindi premere INVIO.
  5. Fare clic con il pulsante destro di BackConnectionHostNames e quindi scegliere Modifica.
  6. Nella casella Dati valore, digitare CNAME o l'alias DNS, utilizzato per le condivisioni locali sul computer, quindi fare clic su OK.

    Nota: digitare ogni nome host su una riga separata.

    Nota: se la voce del registro BackConnectionHostNames esiste come tipo REG_DWORD, è necessario eliminare la voce del registro BackConnectionHostNames.

  7. Chiudere l'editor del Registro di sistema e quindi riavviare il computer.

Metodo 2: disabilitare il controllo del loopback di autenticazione impostando la voce del Registro di sistema DisableLoopbackCheck nella sottochiave del registro HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa su 1. Per impostare la voce del Registro di sistema DisableLoopbackCheck su 1, attenersi alla seguente procedura sul computer client:

  1. Fare clic su Start, scegliere Esegui, digitare regedit e quindi fare clic su OK.
  2. Individua e fai clic sulla seguente sottochiave del Registro di sistema: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa
  3. Fare clic con il pulsante destro del mouse su Lsa, scegliere Nuovo, quindi fare clic su Valore DWORD.
  4. Digitare DisableLoopbackCheck e quindi premere INVIO.
  5. Fare clic con il pulsante destro di DisableLoopbackCheck e quindi scegliere Modifica.
  6. Nella casella dati valore digitare 1 e quindi fare clic su OK.
  7. Chiudi l'editor del registro.
  8. Riavvia il computer.

Quello che ha fatto il trucco per me è stata la seconda opzione - DisableLoopbackCheckinginHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Icarus

1

Posso dirti, in base a una certa esperienza nell'impostazione di SSO, che IE passerà automaticamente un ticket Kerberos per l'accesso solo se il sito e il client si trovano insieme sull'Intranet o se il sito si trova nella zona attendibile. Se Internet Explorer visualizza http://site.company.com/webservice , supporrà che il sito sia su Internet e non passerà le credenziali per l'accesso.

Ci sono alcune informazioni utili a questo link riguardanti IIS, IE e Kerberos. http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx

Due cose che abbiamo scoperto che funzionano per consentire il nome di dominio completo sull'Intranet sono fornire al server Web un certificato e utilizzare SSL o aggiungerlo alla zona attendibile.

Spero che questo aiuti in relazione alla tua configurazione.


Questo non risolve il problema. Ho già provato ad aggiungere il nome di dominio completo alla zona attendibile, senza alcun risultato. Penso però che ciò risolva un problema diverso. L'aggiunta alla zona attendibile consente l' autenticazione automatica , che non mi serve - sto bene con la specifica delle credenziali, ma il problema è che non accetta il mio dominio specificato per le credenziali di accesso - è bloccato sul nome del computer.
Roviuser,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.