Acceder a información de conexiones TLS en un proxy de APIs

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

En este tema se explica cómo acceder a la información de las conexiones TLS en las variables de flujo de un proxy de API que se ejecuta en Apigee o Apigee hybrid.

Capturar información de conexiones TLS

Durante una solicitud a un proxy de API, Apigee puede obtener información sobre la conexión TLS. Tu proxy de API podrá acceder a esa información a través de variables de flujo para realizar análisis y validaciones adicionales.

El tipo de información de TLS que captura Apigee depende de si el Ingress está configurado para admitir TLS unidireccional o bidireccional (solo se aplica a Apigee Hybrid). Por ejemplo, en el caso de TLS unidireccional, Apigee puede capturar información sobre el cifrado o el protocolo TLS que se usa en la conexión TLS.

En el caso de TLS bidireccional, Apigee puede capturar toda la información que se captura en el caso de TLS unidireccional, así como información sobre el certificado del cliente. Por ejemplo, Apigee puede capturar la huella digital SHA1 del certificado de cliente y el certificado de cliente en formato PEM.

Recopilación de información para TLS unidireccional y bidireccional

En la siguiente tabla se indican las variables de flujo que contienen información de conexiones TLS capturada por Apigee y Apigee hybrid, y a las que se puede acceder en el proxy de API.

Variable de flujo Descripción
tls.cipher El cifrado que usa la conexión TLS.
tls.protocol El protocolo que usa la conexión TLS.
tls.server.name El nombre del servidor SNI solicitado.
tls.session.id Identificador de la sesión.

Capturar información adicional de TLS durante la autenticación TLS bidireccional

En la siguiente tabla se enumeran las variables de flujo que contienen los detalles del certificado de cliente capturados por Apigee hybrid en TLS bidireccional:

Variable de flujo Descripción
tls.client.s.dn Nombre distintivo (DN) del sujeto del certificado de cliente.
tls.client.i.dn Nombre distintivo (DN) del emisor del certificado de cliente.
tls.client.raw.cert El certificado de cliente en formato PEM.
tls.client.cert.serial El número de serie del certificado de cliente.
tls.client.cert.fingerprint Huella digital SHA1 del certificado de cliente.
tls.session.id Identificador de la sesión.

Configurar Apigee hybrid para habilitar TLS bidireccional

Para configurar el ingreso de forma que solicite un certificado de cliente, añade los siguientes detalles al archivo de anulaciones:

virtualhosts:
  - name: internal
    minTLSProtocolVersion: "1.2" #optional
    maxTLSProtocolVersion: "1.2" #optional
    tlsMode: MUTUAL
    sslSecret: tls-certificates

Consulta también Configurar TLS y mTLS en la entrada de Istio.

Acceder a las variables de flujo en un proxy de APIs

Desde tu proxy de API, puedes acceder a las variables de flujo de TLS e inspeccionarlas. Por ejemplo, puedes usar la política AssignMessage o la política JavaScript para acceder a ellos.

También puedes hacer referencia a las variables de flujo en un elemento <Condition> de un flujo de proxy o de destino, o en un elemento <Step> o <RouteRule>. Por ejemplo, puedes enrutar una solicitud a diferentes destinos en función del SN del cliente.

Para obtener más información, consulta estos artículos: