Início > Active Directory Federation Services, Proxy Reverso, Web Application Proxy > Atenção durante o deployment do WAP e ADFS

Atenção durante o deployment do WAP e ADFS

Saudações,

Em continuidade a série de posts sobre WAP (Web Application Proxy) e ADFS (Active Directory Federation Services), vamos falar sobre alguns percalços que podem impactar no planejamento de sua estrutura de servidores de proxy reverso, bem como no bom funcionamento de seu serviço de federação.

Lembrando que publiquei no TechNet Wiki os primeiros artigos desta série: Implementando o Web Application Proxy e publicando aplicações via WAP no modo Pass-through.

Além desses artigos, publiquei um post nesse blog sobre as correções lançadas para WAP. Vc pode ler o post clicando aqui.

Vamos relembrar alguns conceitos e requisitos do WAP:

1. O WAP precisa do ADFS (Active Directory Federation Services) como base de dados e para os serviços de pré-autenticação (Claims, OAuth, KCD, MFBA, etc)

2. Para que haja comunicação entre eles é necessário exportar o certificado do ADFS e, caso estejam em DMZ´s diferentes, ter as portas 80, 443 e 49443 abertas no firewall

3. O certificado do ADFS pode ser gerado a partir de uma CA interna mesmo (Active Directory Certificate Services). Os certificados das aplicações a serem publicadas também podem ser do mesmo tipo, mas, facilita se for de CA´s externas (CertSign por exemplo). Entretanto, se o uso da CA interna para publicação de suas aplicações for mandatório, você precisa publicar a sua CRL (Certificate Revocation List) e se certificar que, os acessos externos irão ter o certificado ROOT instalado.

Lembrando que a porta 49443 é usada para configurar client certificate authentication. Se você não pretende usar essa funcionalidade, não precisa abrir essa porta.

Alguns problemas que encontrei em laboratórios e também em alguns clientes foram problemas de conexão entre o WAP e o ADFS. No momento da instalação ocorreu o erro abaixo:

An error occurred when attempting to establish a trust relationship with the federation service. Error: The underlying connection was closed: An unexpected error occurred on a send.

Este erro mostra um problema no certificado que foi exportado do ADFS para o servidor do WAP, ou seja, não é possível estabelecer uma relação de confiança entre WAP e ADFS.

Ao olhar o certificado no WAP Server, dá pra notar um pequeno detalhe (mas que diz tudo):

image

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nesse ponto encontramos a razão do problema, mas, como se corrige isso?

Veja bem, o certificado na figura acima não contem a chave privada. Pra ter certeza, você faz um novo export a partir do ADFS e constata que a chave privada não pode ser exportada.

Chega-se a conclusão de que antes do ADFS ser instalado, um certificado para ele foi requisitado na CA interna, porém, no momento da requisição do certificado não foi selecionada a opção de fazer a chave privada ser exportável:

image

Desta forma, vemos que o problema maior do pensávamos e a solução se dá em algumas alterações no próprio ADFS. Veja abaixo como o ADFS controla esta parte de certificados:

 image

Com base na figura acima, vemos que o ADFS usa o certificado gerado para 3 finalidades – Service Communications, Token-decrypting e Token-signing. A comunicação entre WAP e ADFS se dá através do Service Communications. Para resolver este problema e outros que possam a vir a ocorrer por conta disso, é necessário seguir os passos abaixo:

* Gerar um novo certificado para o ADFS a partir do Snap-In “Certificates”, solicitando a partir da sua CA interna e com a chave privada exportável

* Alterar o certificado usado pelo Service Communications: Na figura acima, lado direito, Sessão “Actions”, opção “Set Service Communications Certificate”. Surgirá uma tela com os certificados instalados localmente e você escolhe aquele que foi gerado com a chave privada exportável.

Resolvido? Não!!! Além dos passos acima, é necessário executar comandos de power shell para que a alteração feita no ADFS, reflita no arquivo http.sys (responsável pelo gerenciamento da parte de certificados)

Para esta finalidade é necessário usar o CmdLet Set-AdfsSslCertificate para definir o novo certificado gerado para o ADFS. Além disso, você irá precisar do ThumbPrint number (a identificação do seu certificado). Na figura abaixo você verá como coletar essa informação:

image

Agora execute o comando abaixo para alterar o certificado no http.sys:

Set-ADFSCertifcate -CertificateType Service-Communication -Thumbprint xxxxxxxx

O mesmo procedimento deve ser adotado para alterar o certificado do Token-decrypting e Token-signing. Não se esqueça de exportar o certificado novo para o servidor do Web Application Proxy (com a chave privada).

Se você instalou seu ADFS somente para esta finalidade e está no começo do seu deployment, vc pode também remover o ADFS e reinstala-lo ao invés de usar os passos acima.

Uma previsão que me foi dada pelo pessoal de desenvolvimento do ADFS é que, para a próxima versão, o http.sys já entenda a alteração de certificado feita na interface gráfica do ADFS, poupando assim tempo do administrador.

Outro fator, embora pequeno, que causou problemas em cliente foi no momento da configuração do Web Application Proxy. Em determinado momento você precisa dizer ao WAP qual será o ADFS Server que ele irá usar como base de dados e para pré-autenticação:

image

Alguns erros de instalação e falha de comunicação ocorriam porque o Federation Service name não está sendo corretamente declarado (vide figura acima).

No campo “Federation Service name” você tem que colocar o nome que criou para seu ADFS (adfs.domínio.com ou federation.dominio.com, etc). O erro ocorria porque em alguns casos, era colocado o FQDN do servidor e aí, não era possível estabelecer a comunicação entre o servidor WAP e o ADFS.

Espero que o post possa ser útil e ajudar aqueles que estão pensando em usar o WAP como proxy reverso.

Abraços

Uilson

  1. 9 de novembro de 2014 às 17:00

    Estou com este problema aqui também!

    • 12 de dezembro de 2014 às 17:24

      Gabriel, qual problema vc está tendo?

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: