Atributos admitidos

Cuando configuras extensiones con complementos o callouts para servicios de backend basados en ext-proc, puedes especificar los atributos de solicitud y conexión para reenviar a esos servicios. En esta página, se describen los atributos admitidos y se especifica cuáles están disponibles para cada tipo de extensión.

Si configuras extensiones para reenviar atributos específicos, puedes lograr lo siguiente:

  • Tomar decisiones de enrutamiento dinámico
  • Enriquecer los encabezados de solicitud con información del cliente
  • Implementar políticas de seguridad personalizadas basadas en la ubicación del cliente o los parámetros de TLS
  • Generar registros personalizados detallados

Puedes especificar atributos con el campo forwardAttributes en la configuración de YAML para extensiones de complementos y callouts. Por ejemplo, para las extensiones de tráfico, consulta Configura una extensión de tráfico.

La especificación de atributos con forwardAttributes es compatible con las extensiones de autorización, ruta y tráfico implementadas con el ext_proc protocolo en los balanceadores de cargas de aplicaciones regionales.

En la siguiente tabla, se enumeran los atributos y las extensiones que los admiten:

Atributo Descripción Extensiones
request.origin El valor del encabezado de origen en una solicitud de casos de uso de uso compartido de recursos entre dominios (CORS) . tráfico
request.method Es el método de solicitud HTTP, como GET o POST. autorización, conexión de integración, ruta, tráfico
request.mcp_method Es el método de solicitud HTTP, como GET o POST. autorización
request.host Es un equivalente conveniente a request.headers['host']. autorización, conexión de integración, ruta, tráfico
request.path La ruta de URL HTTP solicitada. autorización, conexión de integración, ruta, tráfico
request.query Es la consulta de URL HTTP en el formato name1=value&name2=value2, como aparece en la primera línea de la solicitud HTTP. No se realiza ninguna decodificación. autorización, conexión de integración, ruta, tráfico
request.scheme Es el esquema de URL HTTP, como HTTP o HTTPS. Los valores de este atributo están en minúsculas. autorización, conexión de integración, ruta, tráfico
request.backend_service_name El servicio de backend al que se reenvía la solicitud. autorización, tráfico
request.backend_service_project_number Cuando se usa la VPC compartida, el número de proyecto del servicio de backend al que se reenvía la solicitud. autorización, tráfico
request.mcp_param El parámetro MCP. autorización
source.ip La dirección IP del cliente. conexión de integración, ruta, tráfico
source.port El puerto de origen del cliente. conexión de integración, ruta, tráfico
source.client_region El país o la región asociado a la dirección IP del cliente. El valor es un código regional CLDR de Unicode, como US o FR. Para la mayoría de los países, estos códigos corresponden directamente a los códigos ISO-3166-2. conexión de integración, tráfico
source.client_region_subdivision La subdivisión (por ejemplo, una provincia o un estado) del país asociado a la dirección IP del cliente. Este es un ID de subdivisión CLDR de Unicode, como USCA o CAON. Estos códigos Unicode se derivan de las subdivisiones definidas por el estándar ISO-3166-2. conexión de integración
source.client_city El nombre de la ciudad desde la que se originó la solicitud, por ejemplo, Mountain View para Mountain View, California. No hay una lista canónica de valores válidos para esta variable. Los nombres de las ciudades pueden contener letras, números, espacios y los siguientes caracteres de US-ASCII: !#$%&'*+-.^_`|~. conexión de integración
source.client_city_lat_long La latitud y longitud de la ciudad en la que se originó la solicitud, por ejemplo, 37.386051,-122.083851 para una solicitud de Mountain View. conexión de integración
connection.client_encrypted El valor es true si la conexión entre el cliente y el balanceador de cargas está encriptada (con HTTPS, HTTP/2, o HTTP/3); de lo contrario, es false. tráfico
connection.protocol El protocolo HTTP que se usa para la comunicación entre el cliente y el balanceador de cargas. Puede ser uno de HTTP/1.0, HTTP/1.1, HTTP/2, o HTTP/3. tráfico
destination.ip La dirección IP del balanceador de cargas al que se conecta el cliente. Este valor puede ser útil cuando varios balanceadores de cargas comparten backends comunes. Es lo mismo que la última dirección IP en el X-Forwarded-For encabezado. tráfico
destination.port El número de puerto de destino al que se conecta el cliente. tráfico
connection.sni Indicación del nombre del servidor (como se define en RFC 6066), si el cliente la proporciona durante el protocolo de enlace de TLS o QUIC. El nombre de host se pasa a minúsculas y se quita cualquier punto final. autorización, conexión de integración, tráfico
connection.tls_version La versión de TLS negociada entre el cliente y el balanceador de cargas durante el protocolo de enlace SSL. Los valores posibles incluyen: TLSv1, TLSv1.1, TLSv1.2, y TLSv1.3. Si el cliente se conecta con QUIC en lugar de TLS, el valor es QUIC. conexión de integración, tráfico
connection.sha256_peer_certificate_digest El hash SHA256 con codificación hexadecimal del certificado con intercambio de tráfico en la conexión TLS downstream, si está presente. autorización, conexión de integración, tráfico
connection.tls_cipher_suite El conjunto de algoritmos de cifrado negociado durante el protocolo de enlace TLS. El valor son cuatro dígitos hexadecimales definidos por Cipher Suite Registry de TLS de IANA, por ejemplo, 009C para TLS_RSA_WITH_AES_128_GCM_SHA256. Este valor está vacío para QUIC y las conexiones de cliente no encriptadas. tráfico
connection.tls_ja3_fingerprint La huella digital de TLS/SSL de JA3 si el cliente se conecta con HTTPS, HTTP/2, o HTTP/3. tráfico
connection.tls_ja4_fingerprint La huella digital de TLS/SSL de JA4 si el cliente se conecta con HTTPS, HTTP/2, o HTTP/3. conexión de integración, tráfico
connection.client_cert_present El valor es true si el cliente proporcionó un certificado durante el protocolo de enlace TLS, de lo contrario, es false. autorización, tráfico
connection.client_cert_chain_verified El valor es true si la cadena de certificados de cliente se verifica con un TrustStore configurado, de lo contrario, es false. autorización, tráfico
connection.client_cert_error Strings predefinidas que representan las condiciones de error. Para obtener más información sobre las strings de error, consulta los modos de validación de cliente mTLS. autorización, tráfico
connection.client_cert_serial_number El número de serie del certificado de cliente. Si el número de serie supera los 50 bytes, se establece client_cert_error en client_cert_serial_number_exceeded_size_limit, y el número de serie se establece en una string vacía. autorización, tráfico
connection.client_cert_spiffe_id El ID de SPIFFE del campo Nombre alternativo del sujeto (SAN). Si el valor no es válido o supera los 2,048 bytes, el ID de SPIFFE se establece en una string vacía. Si el ID de SPIFFE supera los 2048 bytes, se establece client_cert_error en client_cert_spiffe_id_exceeded_size_limit. autorización, tráfico
connection.client_cert_uri_sans Lista codificada en Base64 de comas de las extensiones de SAN de tipo URI. Las extensiones de SAN se extraen del certificado de cliente. El ID de SPIFFE no está incluido en el client_cert_uri_sans campo. Si client_cert_uri_sans tiene más de 512 bytes, se establece client_cert_error en client_cert_uri_sans_exceeded_size_limit y la lista separada por comas se establece en una string vacía. autorización, tráfico
connection.client_cert_dnsname_sans Lista codificada en Base64 de comas de las extensiones de SAN de tipo DNSName. Las extensiones de SAN se extraen de el certificado de cliente. Si client_cert_dnsname_sans tiene más de 512 bytes, se establece client_cert_error en client_cert_dnsname_sans_exceeded_size_limit, y la lista separada por comas se establece en una string vacía. autorización, tráfico
connection.client_cert_valid_not_before La marca de tiempo (formato de string de fecha RFC 3339) antes de la cual el certificado de cliente no es válido, por ejemplo, 2022-07-01T18:05:09+00:00. autorización, tráfico
connection.client_cert_valid_not_after La marca de tiempo (formato de string de fecha RFC 3339) después de la cual el certificado de cliente no es válido, por ejemplo, 2022-07-01T18:05:09+00:00. autorización, tráfico
connection.client_cert_issuer_dn La codificación DER codificada en Base64 del campo Issuer completo del certificado. Si client_cert_issuer_dn es más largo que 512 bytes, la cadena client_cert_issuer_dn_exceeded_size_limit se agrega a client_cert_error, y client_cert_issuer_dn se establece en una cadena vacía. autorización, tráfico
connection.client_cert_subject_dn La codificación DER codificada en Base64 del campo Subject completo del certificado. Si client_cert_subject_dn tiene más de 512 bytes, se agrega la cadena client_cert_subject_dn_exceeded_size_limit a client_cert_error y client_cert_subject_dn se establece en una cadena vacía. autorización, tráfico
connection.client_cert_leaf El certificado de hoja del cliente para una conexión mTLS establecida donde el certificado pasó la validación. La codificación del certificado cumple con RFC 9440. Esto significa que el certificado binario DER está codificado en Base64 y delimitado por dos puntos en ambos lados. Si client_cert_leaf excede los 16 KB sin codificación, la cadena client_cert_validated_leaf_exceeded_size_limit se agrega a client_cert_error, y client_cert_leaf se establece en una cadena vacía. autorización, tráfico
connection.client_cert_chain La lista delimitada por comas de certificados, en orden TLS estándar, de la cadena de certificados de cliente para una conexión mTLS establecida en la que el certificado de cliente pasó la validación, sin incluir el certificado de hoja. La codificación del certificado cumple con RFC 9440. Si el tamaño combinado de client_cert_leaf y client_cert_chain antes de que la codificación en base64 supere los 16 KB, se agrega la cadena client_cert_validated_chain_exceeded_size_limit a client_cert_error, y client_cert_chain se establece en una cadena vacía. autorización, tráfico