Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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. |