Compartilhar via


Configurar a autenticação de certificado do cliente nos Aplicativos de Contêiner do Azure

Os Aplicativos de Contêiner do Azure dão suporte à autenticação de certificado do cliente (também conhecida como TLS mútua ou mTLS) que permite o acesso ao seu aplicativo de contêiner por meio da autenticação bidirecional. Este artigo mostra como configurar a autorização de certificado do cliente nos Aplicativos de Contêiner do Azure.

Quando os certificados do cliente são usados, os certificados TLS são trocados entre o cliente e o seu aplicativo de contêiner para autenticar a identidade e criptografar o tráfego. Os certificados do cliente geralmente são usados em modelos de segurança de "confiança zero" para autorizar o acesso do cliente em uma organização.

Por exemplo, talvez você queira exigir um certificado de cliente para um aplicativo de contêiner que gerencia dados confidenciais.

Os Aplicativos de Contêiner aceitam certificados de cliente no formato PKCS12 quando uma AC (autoridade de certificação) confiável os emite ou quando eles são autoassinados.

Configurar a autorização de certificado do cliente

Para configurar o suporte para certificados de cliente, defina a propriedade clientCertificateMode no modelo de aplicativo de contêiner.

A propriedade pode ser definida como um dos seguintes valores:

  • require: o certificado do cliente é necessário para todas as solicitações para o aplicativo de contêiner.
  • accept: o certificado do cliente é opcional. Se o certificado do cliente não for fornecido, a solicitação ainda será aceita.
  • ignore: o certificado do cliente é ignorado.

A entrada passa o certificado do cliente para o aplicativo de contêiner se require ou accept estiverem definidos.

O exemplo de modelo do ARM a seguir configura a entrada para exigir um certificado de cliente para todas as solicitações para o aplicativo de contêiner.

{
  "properties": {
    "configuration": {
      "ingress": {
        "clientCertificateMode": "require"
      }
    }
  }
}

Observação

Você pode definir a clientCertificateMode diretamente na propriedade de entrada. Ele não está disponível como uma opção explícita na CLI, mas você pode corrigir seu aplicativo usando a CLI do Azure.

Antes de executar os comandos a seguir, substitua os marcadores cercados por <> com seus próprios valores.

Obtenha a ID do ARM (Azure Resource Manager) do seu aplicativo de contêiner:

APP_ID=$(az containerapp show \
  --name <APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --query id \
  --output tsv)

Aplique o patch na propriedade clientCertificateMode no aplicativo:

az rest \
  --method patch \
  --url "https://management.azure.com/$APP_ID?api-version=<API_VERSION>" \
  --body '{
    "properties": {
      "configuration": {
        "ingress": {
          "clientCertificateMode": "require"
        }
      }
    }
  }'

Observação

Use uma versão de API válida e estável que dê suporte a esse recurso. Por exemplo, substitua <API_VERSION> no comando por 2025-01-01 ou outra versão com suporte.

Modo de certificado de cliente e formato de cabeçalho

O valor para clientCertificateMode varia de acordo com o que você precisa fornecer para que os Aplicativos de Container gerenciem seu certificado.

  • Quando require é definido, o cliente deve fornecer um certificado.
  • Quando accept é definido, o certificado é opcional. Se o cliente fornecer um certificado, este será passado para o aplicativo no cabeçalho X-Forwarded-Client-Cert, como uma lista separada por ponto e vírgula.

Valor do cabeçalho de exemplo X-Forwarded-Client-Cert

O exemplo a seguir é um valor de exemplo do X-Forwarded-Client-Cert cabeçalho que seu aplicativo pode receber:

Hash=<HASH_VALUE>;Cert="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";Chain="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";

Detalhamento do campo de cabeçalho

Campo Descrição Como usá-lo
Hash A impressão digital SHA-256 do certificado do cliente. Use a impressão digital para identificar ou validar o certificado do cliente.
Cert O certificado do cliente codificado em base64 no formato PEM (certificado único). Analise o certificado para inspecionar metadados, como entidade e emissor.
Chain Um ou mais certificados intermediários codificados em PEM. Forneça os certificados intermediários ao criar uma cadeia de confiança completa para validação.

Próximas etapas