Domanda

IIS è stato configurato correttamente per frontare 2 istanze Tomcat utilizzando isapi_redirect.dll. Sta facendo tutto in modo intelligente e siamo stati molto felici. Ora, tuttavia, stiamo utilizzando una delle istanze Tomcat per fornire servizi Web tramite AXIS. Ciò richiede l'autenticazione BASIC e i client .NET non funzionano.
+ I client .NET possono ignorare IIS navigando sul "sito: 8180" e stanno bene
+ I client Java possono colpire IIS e ISAPI li attraversa e si autenticano bene usando basic.
+ I client .NET che colpiscono IIS non riescono ad autenticarsi usando lo stesso unpw.

Fiddler segnala questa sessione:
    HTTP / 1.1 401
non autorizzato
    Data: mer, 07 gen 2009 14:31:59 GMT
    Server: Microsoft-IIS / 6.0
    Autenticazione WWW: NTLM
    X-Powered-By: ASP.NET
    Pragma: nessuna cache
    Controllo cache: nessuna cache
    Scadenza: mer, 31 dic 1969 19:00:00 EST
    WWW-Authenticate: Basic realm = " Daily Control Module "
    Content-Type: text / html; charset = utf-8
    Lunghezza contenuto: 954
    Supporto proxy: autenticazione basata sulla sessione

Avvia ciò che sembra una finestra di dialogo di autenticazione di base, ma invece di chiederci di eseguire l'autenticazione con il modulo di controllo giornaliero, ci chiede di eseguire l'autenticazione sul server Windows. E abbastanza sicuro, il server IIS richiede un'autenticazione NTLM. Se imposto l'intero server per utilizzare Basic Auth, ottengo questo da Fiddler:
    HTTP / 1.1 401
non autorizzato
    Lunghezza contenuto: 1656
    Tipo di contenuto: testo / html
    Server: Microsoft-IIS / 6.0
    WWW-Authenticate: Basic realm = " nome_server "
    X-Powered-By: ASP.NET
    Data: mer, 07 gen 2009 15:08:32 GMT

Sigh. Di base, ma ora il Realm di base viene modificato nel server IIS. Quindi, se imposto l'intero server per l'autenticazione con il dominio di base, il modulo di controllo giornaliero, ottengo questo:
    HTTP / 1.1 401
non autorizzato
    Data: mer, 07 gen 2009 15:11:45 GMT
    Server: Microsoft-IIS / 6.0
    WWW-Authenticate: Basic realm = " Daily Control Module "
    X-Powered-By: ASP.NET
    Pragma: nessuna cache
    Controllo cache: nessuna cache
    Scadenza: mer, 31 dic 1969 19:00:00 EST
    WWW-Authenticate: Basic realm = " Daily Control Module "
    Content-Type: text / html; charset = utf-8
    Lunghezza contenuto: 954

Strano con le doppie intestazioni WWW-Auth, no? Ad ogni modo, l'autenticazione utilizzando lo stesso unpw che funziona direttamente contro Tomcat non riesce, sia che io specifichi il dominio o meno.

Al momento:
+ Anon è spento
+ L'autorizzazione integrata di Windows è disattivata
+ L'autorizzazione di base è attiva, con il dominio configurato come modulo di controllo giornaliero

Grazie per lo sguardo.

È stato utile?

Soluzione

Qual è la configurazione della sicurezza della directory?

Sei sicuro che sia abilitata solo l'autenticazione di base?

Altro punto è. Forse a livello di IIS dovresti usare un'autenticazione anonima. E Tomcat si sta occupando dell'implementazione dell'interscambio di autenticazione di base?

L'origine del problema (dall'intestazione che hai pubblicato) è che il client .net riconosce che il sito supporta l'autenticazione ntlm. E prova ad autenticarti con quel protocollo. Il client java sta semplicemente ignorando l'opzione ntlm, quindi utilizza qualsiasi altro protocollo di autenticazione supportato dal sito.

È necessario assicurarsi che l'autenticazione integrata non sia abilitata a livello di sito e file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top