Share via


Criar um certificado público autoassinado para autenticar seu aplicativo

O Microsoft Entra ID oferece suporte a dois tipos de autenticação para entidades de serviço: autenticação baseada em senha (segredo do aplicativo) e autenticação baseada em certificado. Embora os segredos do aplicativo possam ser facilmente criados no portal do Azure ou usando uma API da Microsoft como o Microsoft Graph, eles são duradouros e não tão seguros quanto os certificados. Portanto, é recomendável que seu aplicativo use um certificado em vez de um segredo.

Para testes, você pode usar um certificado público autoassinado em vez de um certificado assinado pela Autoridade de Certificação (CA). Neste tutorial, você usará o PowerShell para criar e exportar um certificado autoassinado.

Atenção

Certificados autoassinados são certificados digitais que não são assinados por uma CA de terceiros confiável. Os certificados autoassinados são criados, emitidos e assinados pela empresa ou desenvolvedor responsável pelo site ou software que está sendo assinado. É por isso que os certificados autoassinados são considerados inseguros para sites e aplicativos voltados para o público.

Ao criar o certificado usando o PowerShell, você pode especificar parâmetros como algoritmos criptográficos e de hash, período de validade do certificado e nome de domínio. O certificado pode então ser exportado com ou sem sua chave privada, dependendo das necessidades do seu aplicativo.

O aplicativo que inicia a sessão de autenticação requer a chave privada, enquanto o aplicativo que confirma a autenticação requer a chave pública. Portanto, se você estiver autenticando seu aplicativo de área de trabalho PowerShell para a ID do Microsoft Entra, exportará apenas a chave pública (arquivo .cer ) e a carregará no portal do Azure. O aplicativo PowerShell usa a chave privada do armazenamento de certificados local para iniciar a autenticação e obter tokens de acesso para chamar APIs da Microsoft, como o Microsoft Graph.

Seu aplicativo também pode estar sendo executado a partir de outra máquina, como a Automação do Azure. Nesse cenário, você exporta o par de chaves pública e privada do armazenamento de certificados local, carrega a chave pública no portal do Azure e a chave privada (um arquivo .pfx ) para a Automação do Azure. Seu aplicativo em execução na Automação do Azure usará a chave privada para iniciar a autenticação e obter tokens de acesso para chamar APIs da Microsoft, como o Microsoft Graph.

Este artigo usa o New-SelfSignedCertificate cmdlet do PowerShell para criar o certificado autoassinado e o Export-Certificate cmdlet para exportá-lo para um local facilmente acessível. Esses cmdlets são incorporados às versões modernas do Windows (Windows 8.1 e superior, e Windows Server 2012R2 e superior). O certificado autoassinado terá a seguinte configuração:

  • Um comprimento de chave de 2048 bits. Embora sejam suportados valores mais longos, o tamanho de 2048 bits é altamente recomendado para a melhor combinação de segurança e desempenho.
  • Usa o algoritmo criptográfico RSA. Microsoft Entra ID atualmente suporta apenas RSA.
  • O certificado é assinado com o algoritmo de hash SHA256. O Microsoft Entra ID também suporta certificados assinados com algoritmos de hash SHA384 e SHA512.
  • O certificado é válido por apenas um ano.
  • O certificado é suportado para uso para autenticação de cliente e servidor.

Para personalizar a data de início e expiração e outras propriedades do certificado, consulte New-SelfSignedCertificate.

Criar e exportar seu certificado público

Use o certificado que você cria usando esse método para autenticar a partir de um aplicativo em execução a partir de sua máquina. Por exemplo, autentique-se a partir do PowerShell.

Em um prompt do PowerShell, execute o seguinte comando e deixe a sessão do console do PowerShell aberta. Substitua {certificateName} pelo nome que deseja dar ao seu certificado.

$certname = "{certificateName}"    ## Replace {certificateName}
$cert = New-SelfSignedCertificate -Subject "CN=$certname" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature -KeyLength 2048 -KeyAlgorithm RSA -HashAlgorithm SHA256

A $cert variável no comando anterior armazena seu certificado na sessão atual e permite exportá-lo.

O comando abaixo exporta o certificado no formato .cer . Você também pode exportá-lo em outros formatos com suporte no portal do Azure, incluindo .pem e .crt.


Export-Certificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.cer"   ## Specify your preferred location

Seu certificado agora está pronto para ser carregado no portal do Azure. Uma vez carregado, recupere a impressão digital do certificado para usar para autenticar seu aplicativo.

(Opcional): exporte seu certificado público com sua chave privada

Se seu aplicativo for executado a partir de outra máquina ou nuvem, como a Automação do Azure, você também precisará de uma chave privada.

Seguindo os comandos anteriores, crie uma senha para sua chave privada de certificado e salve-a em uma variável. Substitua {myPassword} pela senha que você deseja usar para proteger sua chave privada de certificado.


$mypwd = ConvertTo-SecureString -String "{myPassword}" -Force -AsPlainText  ## Replace {myPassword}

Usando a senha que você armazenou na $mypwd variável, proteja e exporte sua chave privada usando o comando;


Export-PfxCertificate -Cert $cert -FilePath "C:\Users\admin\Desktop\$certname.pfx" -Password $mypwd   ## Specify your preferred location

Seu certificado (arquivo .cer ) agora está pronto para carregar no portal do Azure. A chave privada (ficheiro .pfx ) está encriptada e não pode ser lida por terceiros. Uma vez carregado, recupere a impressão digital do certificado, que você pode usar para autenticar seu aplicativo.

Tarefa opcional: exclua o certificado do armazenamento de chaves.

Você pode excluir o par de chaves do seu armazenamento pessoal executando o seguinte comando para recuperar a impressão digital do certificado.


Get-ChildItem -Path "Cert:\CurrentUser\My" | Where-Object {$_.Subject -Match "$certname"} | Select-Object Thumbprint, FriendlyName

Em seguida, copie a impressão digital exibida e use-a para excluir o certificado e sua chave privada.


Remove-Item -Path Cert:\CurrentUser\My\{pasteTheCertificateThumbprintHere} -DeleteKey

Saiba a data de validade do seu certificado

O certificado autoassinado que você criou seguindo as etapas acima tem um tempo de vida limitado antes de expirar. Na seção Registros de aplicativos do portal do Azure, a tela Certificados & segredos exibe a data de expiração do certificado. Se você estiver usando a Automação do Azure, a tela Certificados na conta de Automação exibirá a data de expiração do certificado. Siga as etapas anteriores para criar um novo certificado autoassinado.

Próximos passos

Gerenciar certificados para logon único federado no Microsoft Entra ID