Não é possível obter conector IIS ISAPI Tomcat para passar a autenticação básica através de Tomcat

StackOverflow https://stackoverflow.com/questions/420693

Pergunta

Nós já configurado com sucesso o IIS para 2 instâncias de Tomcat frontais utilizando isapi_redirect.dll. Ele está fazendo tudo de forma inteligente, e temos sido muito felizes. Agora, no entanto, estamos usando uma das instâncias do Tomcat para servir serviços web através AXIS. Isso requer BASIC Auth e .NET clientes estão falhando.
+ Clientes NET pode ignorar o IIS surf de "site: 8180" e eles estão bem
+ Clientes Java pode bater IIS e ISAPI passa-los através de e eles autenticar apenas multa usando básico.
+ clientes NET que atingiram IIS não autenticar usando o mesmo unpw.

Fiddler relata esta sessão:
HTTP / 1.1 401 Unauthorized
Data: Wed, 07 de janeiro de 2009 14:31:59 GMT
Servidor: Microsoft-IIS / 6.0
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Pragma: no-cache
Cache-Control: no-cache
Expira: Wed, 31 de dezembro de 1969 19:00:00 EST
WWW-Authenticate: reino Básico = "Módulo de Controle Daily"
Content-Type: text / html; charset = utf-8
Content-Length: 954
Proxy-Support: Sessão baseados em autenticação

Ele chuta para cima o que parece um diálogo básico auth, mas em vez de pedir-nos para auth contra Módulo de Controle diário, ele nos pede para auth contra o servidor do Windows. E com certeza, o servidor IIS está pedindo uma auth NTLM. Se eu definir todo o servidor para usar Auth Basic, eu recebo este de Fiddler:
HTTP / 1.1 401 Unauthorized
Content-Length: 1.656
Content-Type: text / html
Servidor: Microsoft-IIS / 6.0
WWW-Authenticate: reino básico =
"serverName" X-Powered-By: ASP.NET
Data: Wed, 07 janeiro de 2009 15:08:32 GMT

suspiro. Basic, mas agora o Reino básica é alterado para o servidor IIS. Então, se eu definir todo o servidor para autenticar contra reino Basic, Módulo de Controle diário, então fico com esta:
HTTP / 1.1 401 Unauthorized
Data: Wed, 07 de janeiro de 2009 15:11:45 GMT
Servidor: Microsoft-IIS / 6.0
WWW-Authenticate: reino Básico = "Módulo de Controle Daily"
X-Powered-By: ASP.NET
Pragma: no-cache
Cache-Control: no-cache
Expira: Wed, 31 dez 1969 19:00:00 EST
WWW-Authenticate: reino Básico = "Módulo de Controle Daily"
Content-Type: text / html; charset = utf-8
Content-Length: 954

Estranho com os cabeçalhos dupla WWW-auth, não? De qualquer forma, a autenticação usando mesmo unpw que trabalha diretamente contra Tomcat falhar, se eu especificar o domínio ou não.

Neste momento:
+ Anon é Off
+ Integrada do Windows Auth é Off
+ Básico auth é On, com o reino configurado como Módulo de Controle diário

Agradecimentos para olhar.

Foi útil?

Solução

O que é a configuração da segurança de diretório?

Você tem certeza que apenas a autenticação básica é habilitado?

Outro ponto é. Talvez nos iis nível você deve usar a autenticação anônima. E tomcat está cuidando de implementar o intercâmbio autenticação básica?

A origem do problema (a partir do cabeçalho você postou) é que o cliente .net reconhecer que a autenticação NTLM suporte site. E tentar autenticar com esse protocolo. O cliente java é simplesmente ignorar a opção ntlm assim que usar qualquer outro protocolo de autenticação dos suportes do site.

Você deve certificar-se de que a autenticação integrada não está habilitado no site e arquivo nível.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top