Como acessar informações de conexão TLS em um proxy de API

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Neste tópico, explicamos como acessar informações de conexão TLS em variáveis de fluxo de um proxy de API em execução na Apigee ou na Apigee híbrida.

Como capturar informações de conexão TLS

Durante uma solicitação para um proxy de API, a Apigee pode capturar informações sobre a conexão TLS. O proxy de API pode acessar essas informações em variáveis de fluxo para realizar análise e validação adicionais.

O tipo de informação TLS capturada pela Apigee depende das configurações de compatibilidade do Ingress com o TLS unidirecional ou bidirecional (aplicável somente à Apigee híbrida). Por exemplo, para o TLS unidirecional, a Apigee pode capturar informações sobre a criptografia do TLS ou sobre o protocolo TLS usados na conexão TLS.

Com o TLS bidirecional, a Apigee pode capturar as mesmas informações capturadas para o TLS unidirecional, além de capturar informações sobre o certificado do cliente. Por exemplo, a Apigee pode capturar a impressão digital SHA1 do certificado do cliente e o certificado do cliente no formato PEM.

Como capturar informações para TLS unidirecional e bidirecional

A tabela a seguir lista as variáveis de fluxo que contêm informações de conexão TLS capturadas pela Apigee e pela Apigee híbrida e estão disponíveis para acesso no proxy de API.

Variável de fluxo Descrição
tls.cipher A criptografia usada pela conexão TLS.
tls.protocol O protocolo usado pela conexão TLS.
tls.server.name O nome do servidor SNI solicitado.
tls.session.id O identificador da sessão.

Como capturar informações adicionais de TLS durante a TLS bidirecional

A tabela a seguir lista as variáveis de fluxo que contêm detalhes sobre o certificado do cliente capturados pela Apigee híbrida bidirecional:

Variável de fluxo Descrição
tls.client.s.dn O nome distinto (DN, na sigla em inglês) do assunto que identifica o certificado do cliente.
tls.client.i.dn O nome distinto (DN, na sigla em inglês) do emissor do certificado do cliente.
tls.client.raw.cert O certificado do cliente no formato PEM.
tls.client.cert.serial O número de série do certificado do cliente.
tls.client.cert.fingerprint Impressão digital SHA1 do certificado do cliente.
tls.session.id O identificador da sessão.

Como configurar a Apigee híbrida para ativar o TLS bidirecional

Para configurar a entrada para solicitar o certificado de um cliente, adicione os seguintes detalhes ao arquivo de modificações:

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

Consulte também Como configurar TLS e mTLS na entrada do Istio.

Como acessar as variáveis de fluxo em um proxy de API

No proxy de API, é possível acessar e inspecionar as variáveis de fluxo TLS. Por exemplo, use a política AssignMessage ou JavaScript para acessá-las.

Também é possível referenciar as variáveis de fluxo em um elemento <Condition> de um proxy ou fluxo de destino, ou em um <Step> ou <RouteRule>. Por exemplo, é possível encaminhar uma solicitação para destinos diferentes com base no SN do cliente.

Para mais informações, consulte: