Olá pessoal. Você é daqueles administradores que se arrepiam só de ver que está chegando o momento de atualizar os certificados do AD FS? 😱
No artigo de hoje vou explicar como atualizar os certificados do AD FS Token-signin e Token-decrypting de forma automática e manual, mantendo o ambiente AD FS funcional.
Para que é utilizado o Token-signing Certificate?
Os servidores de AD FS utilizam o certificado tipo token-signing para prevenir que hackers efetuem alterações nos tokens de autorização e obtenham acesso aos serviços federados. Chaves privadas e públicas são usadas para garantir que o token de segurança não seja gerado por uma fonte segura e não seja alterado por terceiros.
Para que é utilizado o Token-decrypting Certificate?
O certificado do tipo token-decrypting é utilizado para fazer a descriptografia de tokens que foram criptografados por outros recursos federados. Todos os certificados possuem uma chave privada.
Alterando os certificados Token-signing e Token decrypting Automaticamente
Por padrão, os certificados TS (Token-signing) e TD (Token-Decrypting) são configurados para serem atualizados automaticamente através da funcionalidade chamada AutoCertificateRollover.
Essa configuração pode ser observada executando o comando abaixo em um servidor AD FS primário:
Get-AdfsProperties
Os parâmetros disponíveis são:
AutoCertificateRollover: Se ativo, permite que o serviço AD FS gerencie a emissão e substituição dos certificados de forma automática gerando um vertificado secundário e o promovendo em seguida.
CertificateCriticalThreshold: Contém o valor de dias antes da expiração do certificado TS ou TD primário. Quando o valor definido neste parâmetro é alcançado, o processo de substituição do certificado é iniciado gerando um novo certificado e o promovendo a primário.
CertificateDuration: Contém o valor de dias que os certificados no serviço AD FS podem se manter válidos.
CertificateGenerationThreshold: Contém o período de dias antes do serviço do AD FS gerar um novo certificado. Quando a quantidade de dias especificados neste parâmetro é atingida, o serviço inicia a criação do novo certificado, nomeando este como secundário. Neste momento, aplicações que consomem as configurações do AD FS através do arquivo de meta dados, já conseguem acessar informações sobre o novo certificado antes que este substitua o atual, evitando indisponibilidade decorrente da mudança.
CertificatePromotionThreshold: Contém o número de dias que o novo certificado permanece como secundário antes de ser promovido a primário.
CertificateRolloverInterval: Contém o tempo em minutos que o AD FS verifica se algum certificado novo precisa ser gerado.
CertificateThresholdMultiplier: Contém o multiplicador de tempo. Por padrão, este parâmetro possui o número de minutos em um dia (1440). É alterado apenas em caso específicos onde se deseja definir um tempo de expiração de certificado menor que um dia.
Caso você mantenha o padrão com o AutoCertificateRollover ativo, os certificados TS e TD serão gerados automaticamente e consumidos pelas Relying Parties através do arquivo metadata do AD FS disponível através da URL https://server.domain.com/FederationMetadata/2007-06/FederationMetadata.xml.
Para as aplicações que não suportam a atualização automática, deve-se exportar o certificado gerado pelo AD FS e agendar a alteração com o provedor de serviço responsável pela aplicação.
Quando o certificado é gerado, é possível observar os certificados identificados como secundários, sendo promovidos de forma automática quando o CertificatePromotionThreshold é alcançado.

Alterando os certificados Token-signin e Token decrypting manualmente
Para executar manualmente a criação dos certificados, vamos precisar ativar o parâmetro Auto Certificate Rollover com o comando abaixo:
Set-ADFSProperties -AutoCertificateRollover $true

Para identificar o certificado TS ativo no servidor AD FS, vamos executar o comando abaixo:
Get-ADFSCertificate –CertificateType token-signing

Para gerar um novo certificado TS secundário no servidor AD FS, vamos executar o comando abaixo:
Update-ADFSCertificate –CertificateType token-signing

Podemos observar o novo certificado identificado como secundário na console do AD FS:

Caso precise gerar um novo certificado e já substituir o primário, pode ser utilizado o atributo -urgent conforme abaixo:
Update-ADFSCertificate –CertificateType token-signing -urgent

Nota: Usando o parâmetro -urgent é necessário que as RPs sejam atualizadas de imediato. Conforme abaixo, podemos observar que apenas o novo certificado aparece como primário.

Com o comando abaixo podemos observar que o novo certificado está configurado no AD FS.
Get-ADFSCertificate –CertificateType token-signing

Vamos agora executar o comando abaixo para identificar o certificado TD no AD FS.
Get-ADFSCertificate –CertificateType token-decrypting

Vamos executar o comando abaixo para gerar um novo certificado TD no AD FS.
Update-ADFSCertificate –CertificateType token-decrypting

Podemos observar que o novo certificado foi gerado e é identificado na console do AD FS como secundário.

Assim como na troca do certificado TS,vamos executar o comando abaixo para substituir o certificado atual imediatamente no AD FS.
Update-ADFSCertificate –CertificateType token-decrypting -urgent

Podemos observar abaixo que o novo certificado já está configurado como primário e em uso na console do AD FS.

Atualizando o novo certificado TS no Azure
Para garantir o acesso às aplicações hospedadas no Azure, é necessário atualizar os certificados gerados pelo AD FS no Azure AD. Vamos iniciar essa atualização executando os comandos abaixo caso não tenha o módulo MSOnline instalado
Install-Module MSOnline
Import-Module MSOnline
Execute o comando abaixo para se conectar ao serviço MSOnline.
Connect-MsolService
Entre com uma credencial com permissão de administrador global no Azure.

Executando comando abaixo, podemos observar que o certificado gerado pelo AD FS não coincide como certificado configurado no Office 365.
Get-MsolFederationProperty -DomainName <domain> | FL Source, TokenSigningCertificate

Vamos executar agora o comando abaixo para atualizar o certificado gerado pelo AD FS no Azure.
Update-MSOLFederatedDomain –DomainName <domain> -SupportMultipleDomain

Vamos executar o comando abaixo para validar a atualização do certificado no Office 365.
Get-MsolFederationProperty -DomainName <domain> | FL Source, TokenSigningCertificate

Com o comando abaixo, podemos observar os certificados TS configurados no Office 365.
Get-MsolDomainFederationSettings -domain <domain>

Resumo
No artigo de hoje, falamos sobre as formas de atualizar os certificados token-signing e token-decrypting utilizados pelo AD FS.
Espero que este conteúdo tenha contribuído com o enriquecimento do conhecimento de vocês em AD FS.
Gostaram do post? Curtam e compartilhem. 🙂
Tem alguma sugestão ou observação, comente.
[ ]’s
Ulysses Neves

Parabéns pelo conteúdo, Ulysses.
Obrigado brother!
Obrigado!! Consegui atualizar os certificados graças ao seu tutorial.
Obrigado pela opinião Diego! Fico feliz que este artigo o tenha ajudado.