Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os Aplicativos de Contêiner do Azure dão suporte à autenticação de certificado de cliente (também conhecida como TLS mútuo 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 de cliente em Aplicativos de Contêiner do Azure.
Quando os certificados de cliente são usados, os certificados TLS são trocados entre o cliente e seu aplicativo de contêiner para autenticar a identidade e criptografar o tráfego. Os certificados de cliente são frequentemente usados em modelos de segurança de "confiança zero" para autorizar o acesso do cliente dentro de 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 autoridade de certificação (CA) confiável os emite ou quando eles são autoassinados.
Configurar autorização de certificado de cliente
Para configurar o suporte para certificados de cliente, defina a clientCertificateMode propriedade em seu 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.
Ingress passa o certificado do cliente para o aplicativo de contêiner se require ou accept estiver definido.
O exemplo de modelo ARM a seguir configura a entrada para exigir um certificado de cliente para todas as solicitações ao aplicativo contêiner.
{
"properties": {
"configuration": {
"ingress": {
"clientCertificateMode": "require"
}
}
}
}
Observação
Você pode definir o 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, certifique-se de substituir os espaços reservados cercados por <> pelos seus próprios valores.
Obtenha a ID do Azure Resource Manager (ARM) do seu aplicativo de contêiner:
APP_ID=$(az containerapp show \
--name <APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query id \
--output tsv)
Corrija a clientCertificateMode propriedade 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
Certifique-se de usar uma versão válida e estável da API que suporte esse recurso. Por exemplo, substitua <API_VERSION> no comando por 2025-01-01 ou outra versão suportada.
Modo de certificado do cliente e formato de cabeçalho
O valor para clientCertificateMode varia o que você precisa fornecer para Aplicativos de Contêiner para gerenciar seu certificado:
- Quando
requireé definido, o cliente deve fornecer um certificado. - Quando
accepté definido, o certificado é opcional. Se o cliente fornecer um certificado, este passa para a aplicação no cabeçalhoX-Forwarded-Client-Cert, como uma lista separada por ponto-e-vírgula.
Exemplo X-Forwarded-Client-Cert de valor de cabeçalho
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>";
Desagregação 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 de cliente codificado em base64 no formato PEM (certificado único). | Analise o certificado para inspecionar metadados, como assunto 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. |