Accéder aux informations de connexion TLS dans un proxy d'API

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Cet article explique comment accéder aux informations de connexion TLS dans les variables de flux pour un proxy d'API exécuté sur Apigee ou Apigee hybrid.

Récupérer des informations de connexion TLS

Lors d'une requête adressée à un proxy d'API, Apigee peut capturer des informations sur la connexion TLS. Votre proxy d'API peut ensuite accéder à ces informations via des variables de flux pour effectuer une analyse et une validation supplémentaires.

Le type d'informations TLS capturées par Apigee varie selon que l'entrée est configurée pour accepter le protocole TLS unidirectionnel ou bidirectionnel (uniquement applicable avec Apigee hybrid). Par exemple, pour le protocole TLS unidirectionnel, Apigee peut capturer des informations sur l'algorithme de chiffrement TLS ou le protocole TLS utilisé dans la connexion TLS.

Pour le protocole TLS bidirectionnel, Apigee peut capturer les mêmes informations que celles capturées pour le TLS unidirectionnel, et également capturer des informations sur le certificat du client. Par exemple, Apigee peut capturer l'empreinte SHA1 du certificat client et le certificat client au format PEM.

Récupérer des informations pour le protocole TLS unidirectionnel et bidirectionnel

Le tableau suivant répertorie les variables de flux contenant les informations de connexion TLS capturées par Apigee et Apigee hybrid, et accessibles dans le proxy d'API.

Variable de flux Description
tls.cipher Algorithme de chiffrement utilisé par la connexion TLS.
tls.protocol Protocole utilisé par la connexion TLS.
tls.server.name Nom du serveur SNI demandé.
tls.session.id Identifiant de session.

Récupérer des informations TLS supplémentaires lors du protocole TLS bidirectionnel

Le tableau suivant répertorie les variables de flux contenant les détails du certificat client capturés par Apigee hybrid via le protocole TLS bidirectionnel :

Variable de flux Description
tls.client.s.dn Nom distinctif de l'objet du certificat client
tls.client.i.dn Émetteur du nom distinctif du certificat client
tls.client.raw.cert Certificat client au format PEM
tls.client.cert.serial Numéro de série du certificat client
tls.client.cert.fingerprint Empreinte SHA1 du certificat client
tls.session.id Identifiant de session.

Configurer Apigee hybrid pour activer le protocole TLS bidirectionnel

Pour configurer l'entrée afin de demander un certificat client, ajoutez les informations suivantes au fichier de remplacement :

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

Consultez également la section Configurer les protocoles TLS et mTLS sur l'entrée Istio.

Accéder aux variables de flux dans un proxy d'API

À partir de votre proxy d'API, vous pouvez accéder aux variables de flux TLS et les inspecter. Par exemple, vous pouvez utiliser la règle AssignMessage ou JavaScript pour y accéder.

Vous pouvez également référencer les variables de flux dans un élément <Condition> d'un flux de proxy ou d'un flux cible, ou dans un élément <Step> ou <RouteRule>. Par exemple, vous pouvez acheminer une requête vers différentes cibles en fonction du SN du client.

Pour en savoir plus, consultez les sections suivantes :