Serviço WCF hospedado no IIS e no site do cliente no IIS
-
23-09-2019 - |
Pergunta
Aqui está a configuração desejada:
- O serviço com WSHTTPBinding está no IIS 6 na máquina 1 atrás do firewall.
- O cliente é o site do front -end no IIS 6 na máquina 2 em um DMZ.
Atualmente, podemos autenticar o cliente usando a autenticação do Windows, mas com representação
<identity impersonate="true" userName="OurCompany\Me" password="Blahblahblah" />
Como o site usaria o "ASPNET" como nome de usuário, que não está no domínio.
Agora queremos nos afastar desse método, devido a problemas de segurança; Não queremos expor esse tipo de informação sobre o DMZ.
Existe alguma maneira de obter autenticação corretamente sem usar o personalidade na configuração do cliente?
Se alterarmos para usarmos a autenticação do certificado, isso afetaria as operações de serviço que exigem representação (necessárias representação para acesso a arquivos na rede, por exemplo)?
obrigado.
Solução
Isso foi resolvido agora, e acho que seria construtivo compartilhar as soluções.
Em termos da minha pergunta original - se ela é capaz de fazer representação sem defini -la explicitamente na configuração ou no código front -end. Como mencionado pelo acima, o método do pool de aplicativos funciona, mas apenas quando o cliente e o servidor estão no mesmo domínio.
Como o cliente do site está situado no DMZ não tem acesso à rede local, o que significa que somos incapazes de se passar por nenhum usuário de rede (isso é uma falha na minha pergunta original, dizendo que a representação funciona - na verdade não estava funcionando) .
Portanto, o único caminho a percorrer era usar o certificado. Como se trata de comunicações internas, eu gerei um certificado de teste em cada um dos lados do servidor / cliente com o Makecert. Usando autenticações de certificado de confiança de pares, sou capaz de fazer a comunicação funcionar entre o cliente e o servidor. Isso garantirá que nenhuma informação da conta do usuário do Windows / rede seja apresentada na zona DMZ.