Compartilhar via


Criar um certificado público autoassinado para autenticar seu aplicativo

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

Para teste, você pode usar um certificado público autoassinado em vez de um certificado assinado por AC (autoridade de certificação). Nestas instruções, você usará o PowerShell para criar e exportar um certificado autoassinado.

Cuidado

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

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

O aplicativo que inicia a sessão de autenticação exige a chave privada, enquanto o aplicativo que confirma a autenticação exige a chave pública. Por isso, se você estiver autenticando pelo seu aplicativo da área de trabalho do PowerShell para a ID do Microsoft Entra, exporte somente a chave pública (arquivo .cer) e carregue-a no portal do Azure. O aplicativo do PowerShell usa a chave privada do repositório 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 em execução de outro computador, como a Automação do Azure. Nesse cenário, você exporta o par de chaves pública e privada do repositório de certificados local, carrega a chave pública para o 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 cmdlet do PowerShell New-SelfSignedCertificate para criar o certificado autoassinado e o cmdlet Export-Certificate para exportá-lo para um local que seja facilmente acessível. Esses cmdlets são internos para 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 haja suporte para valores mais longos, o tamanho de 2048 bits é altamente recomendado para a melhor combinação de segurança e desempenho.
  • Usa o algoritmo de criptografia RSA. Atualmente, a ID do Microsoft Entra dá suporte apenas à RSA.
  • O certificado é assinado com o algoritmo de hash SHA256. A ID do Microsoft Entra também dá suporte aos certificados assinados com algoritmos de hash SHA384 e SHA512.
  • O certificado é válido por apenas um ano.
  • O certificado tem suporte para uso tanto para autenticação de cliente quanto de servidor.

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

Criar e exportar seu certificado público

Use o certificado que você criar usando esse método para autenticar de um aplicativo em execução no seu computador. Por exemplo, autentique com o Windows 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 você 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 variável $cert no comando anterior armazena seu certificado na sessão atual e permite que você o exporte.

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. Depois de carregado, recupere a impressão digital do certificado para usar para autenticar seu aplicativo.

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

Se o aplicativo estiver em execução em outro computador ou nuvem, como Automação do Azure, você também precisará de uma chave privada.

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


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

Usando a senha que você armazenou na variável $mypwd, proteja e exporte sua chave privada com 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 ser carregado no portal do Azure. A chave privada (arquivo .pfx) é criptografada e não pode ser lida por outras partes. Depois de carregado, recupere a impressão digital do certificado, que pode ser usada para autenticar seu aplicativo.

Tarefa opcional: exclua o certificado do repositório de chaves.

Você pode excluir o par de chaves do repositório pessoal executando o comando a seguir 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 que é exibida e use-a para excluir o certificado e a chave privada dele.


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

Saber a data de validade do certificado

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

Próximas etapas

Gerenciar os certificados para logon único federado na ID do Microsoft Entra.