Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Container Apps admite la autenticación de certificados de cliente (también conocida como TLS mutuo o mTLS), que permite el acceso a la aplicación contenedora a través de la autenticación bidireccional. En este artículo, se muestra cómo configurar la autorización de certificados de cliente en Azure Container Apps.
Cuando se usan certificados de cliente, los certificados de TLS se intercambian entre el cliente y la aplicación contenedora para autenticar la identidad y cifrar el tráfico. Los certificados de cliente se suelen usar en modelos de seguridad de "confianza cero" para autorizar el acceso de cliente dentro de una organización.
Por ejemplo, es posible que quiera requerir un certificado de cliente para una aplicación contenedora que administra datos confidenciales.
Container Apps acepta certificados de cliente en el formato PKCS12 cuando una entidad de certificación (CA) de confianza los emite o cuando están autofirmados.
Configuración de la autorización de certificados de cliente
Para configurar la compatibilidad con certificados de cliente, establezca la propiedad clientCertificateMode en la plantilla de aplicación contenedora.
La propiedad se puede establecer en uno de los siguientes valores:
require: el certificado de cliente es necesario para todas las solicitudes a la aplicación contenedora.accept: el certificado de cliente es opcional. Si no se proporciona el certificado de cliente, la solicitud todavía se acepta.ignore: se omite el certificado de cliente.
La entrada pasa el certificado de cliente a la aplicación contenedora si se establecen require o accept.
En el siguiente ejemplo de plantilla de ARM se configura la entrada para requerir un certificado de cliente para todas las solicitudes a la aplicación contenedora.
{
"properties": {
"configuration": {
"ingress": {
"clientCertificateMode": "require"
}
}
}
}
Nota:
Puede establecer directamente clientCertificateMode en la propiedad de entrada. No está disponible como opción explícita en la CLI, pero puede aplicar revisiones a la aplicación mediante la CLI de Azure.
Antes de ejecutar los siguientes comandos, asegúrese de reemplazar los marcadores de posición delimitados por <> con sus propios valores.
Obtenga el identificador de Azure Resource Manager (ARM) de la aplicación contenedora:
APP_ID=$(az containerapp show \
--name <APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--query id \
--output tsv)
Aplique revisiones a la propiedad clientCertificateMode en la aplicación:
az rest \
--method patch \
--url "https://management.azure.com/$APP_ID?api-version=<API_VERSION>" \
--body '{
"properties": {
"configuration": {
"ingress": {
"clientCertificateMode": "require"
}
}
}
}'
Nota:
Asegúrese de usar una versión de API válida y estable que admita esta característica. Por ejemplo, reemplace <API_VERSION> en el comando por 2025-01-01 u otra versión compatible.
Modo de certificado de cliente y formato de encabezado
El valor de clientCertificateMode varía lo que necesita proporcionar para que Container Apps administre el certificado:
- Cuando
requirese establece, el cliente debe proporcionar un certificado. - Cuando
acceptse establece, el certificado es opcional. Si el cliente proporciona un certificado, pasa a la aplicación en el encabezadoX-Forwarded-Client-Cert, como una lista separada por punto y coma.
Valor de encabezado de ejemplo X-Forwarded-Client-Cert
El ejemplo siguiente es un valor de ejemplo del X-Forwarded-Client-Cert encabezado que la aplicación puede recibir:
Hash=<HASH_VALUE>;Cert="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";Chain="-----BEGIN CERTIFICATE-----<CERTIFICATE_VALUE>";
Desglose del campo de encabezado
| Campo | Descripción | Cómo usarlo |
|---|---|---|
Hash |
Huella digital SHA-256 del certificado de cliente. | Use la huella digital para identificar o validar el certificado de cliente. |
Cert |
El certificado de cliente codificado en base64 en formato PEM (certificado único). | Analice el certificado para inspeccionar metadatos como asunto y emisor. |
Chain |
Uno o varios certificados intermedios codificados en PEM. | Proporcione los certificados intermedios al crear una cadena de plena confianza para la validación. |