<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Edge vous permet de créer des hôtes virtuels prenant en charge TLS unidirectionnelle et bidirectionnelle. Avec TLS à sens unique, le client envoie une requête de session à un hôte virtuel déployé sur un routeur Edge et le routeur répond par un certificat contenant la clé publique de l'hôte virtuel. Pour un certificat signé, le client peut ensuite demander à l'autorité de certification (CA) d'authentifier le certificat.
Dans le protocole TLS bidirectionnel, les certificats client et Edge sont tous deux validés dans le cadre d’une requête:
- Le routeur Edge présente son certificat au client TLS pour s'authentifier. Le client vérifie ensuite l’identité du serveur avant d’envoyer son certificat au serveur.
- Le client TLS présente son certificat à Edge pour s'authentifier.
Pour en savoir plus, consultez la section À propos des hôtes virtuels.
Récupérer des informations de connexion TLS
Lors d'une requête adressée à un proxy d'API via un hôte virtuel prenant en charge TLS, Edge peut capturer 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 Edge varie selon que l'hôte virtuel prend en charge ou non TLS unidirectionnel ou bidirectionnel. Par exemple, pour TLS à sens unique, Edge peut capturer des informations sur le Chiffrement TLS ou protocole TLS utilisé dans la connexion TLS.
Pour un TLS bidirectionnel, Edge peut capturer toutes les mêmes informations que celles capturées pour le TLS à sens unique, et capturer également des informations sur le certificat du client. Par exemple, Edge peut capturer l'empreinte SHA1 du certificat client et du certificat client au format PEM.
Capturer des informations pour TLS unidirectionnelle et bidirectionnelle
Le tableau suivant répertorie les variables de flux qui contiennent des informations de connexion TLS capturées
par Edge et disponibles pour
l'accès dans le proxy d'API. Ces informations sont collectées pour les entrées à sens unique
et le protocole TLS bidirectionnel en définissant <ConnectionProperties>
sur "true"
Définition de l'hôte virtuel:
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. Cette variable de flux est disponible lorsque vous définissez |
Récupérer des informations TLS supplémentaires lors du protocole TLS bidirectionnel
Le tableau suivant répertorie les variables de flux qui contiennent les détails du certificat client capturés par Edge
avec un protocole TLS bidirectionnel. Ces informations sont capturées pour
le protocole TLS bidirectionnel en définissant
<ClientProperties>
sur "true" dans la définition de l'hôte virtuel:
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. Cette variable de flux est disponible lorsque vous définissez
|
Configurer un hôte virtuel pour capturer les informations TLS
Pour configurer l'hôte virtuel afin qu'il capture les informations TLS, définissez les propriétés suivantes
sous <PropagateTLSInformation>
par true
.
<ConnectionProperties>
: active la capture des informations de connexion TLS. pour le protocole TLS unidirectionnel et bidirectionnel. La valeur par défaut estfalse
.<ClientProperties>
: active la capture d'informations supplémentaires. pour le protocole TLS bidirectionnel. La valeur par défaut estfalse
.
Par exemple, la définition d'hôte virtuel suivante utilise le protocole TLS bidirectionnel et active la capture les deux types d'informations TLS:
<VirtualHost name="secure"> .... <SSLInfo> <Enabled>true</Enabled> # Enable two-way TLS. <ClientAuthEnabled>true</ClientAuthEnabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>ks-alias</KeyAlias> <KeyStore>ref://ks-ref</KeyStore> <TrustStore>ref://ts-ref</TrustStore> </SSLInfo> <PropagateTLSInformation> <ConnectionProperties>true</ConnectionProperties> <ClientProperties>true</ClientProperties> </PropagateTLSInformation> </VirtualHost>
Si vous transmettez un corps JSON, définissez les propriétés comme suit:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
Définir des limites de taille d'en-tête
Lorsque vous activez la capture d'informations TLS sur un hôte virtuel, Edge transmet ces informations à l'aide d'en-têtes HTTP. Vous devez donc vous assurer que les limites de taille d'en-tête sont correctement définies. selon que vous utilisez Edge pour le cloud ou Edge pour le cloud privé:
- Edge for the Cloud: Apigee définit les tailles d'en-tête de manière appropriée.
- Edge pour le cloud privé: fonctionnalité non disponible.
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 méthode AssignMessage pour y accéder, y accéder en JavaScript avec la règle JavaScript.
Vous pouvez également référencer les variables de flux dans un élément <Condition>
d'un flux proxy ou cible,
ou dans <Step>
ou <RouteRule>
. Par exemple, vous pouvez acheminer
une demande à différentes cibles
en fonction du numéro de série du client.
Pour en savoir plus, consultez les pages suivantes: