Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an. info
Mit Edge können Sie virtuelle Hosts erstellen, die uni- und bidirektionale TLS unterstützen. Mit der Einwegoption TLS, Der Client gibt eine Sitzungsanfrage an einen virtuellen Host aus, der auf einem Edge Router und dem Router bereitgestellt ist. antwortet mit einem Zertifikat, das den öffentlichen Schlüssel des virtuellen Hosts enthält. Bei einem signierten Zertifikat muss der Client kann dann bei der Zertifizierungsstelle (Certificate Authority, CA) eine Anfrage zur Authentifizierung des Zertifikats stellen.
Bei Zwei-Wege-TLS bestehen sowohl der Client als auch die Edge-Zertifikate, die im Rahmen einer Anfrage validiert werden:
- Der Edge Router stellt dem TLS-Client sein Zertifikat zur Authentifizierung vor. Der Kunde überprüft dann die Identität des Servers, bevor das Zertifikat an den Server gesendet wird.
- Der TLS-Client legt sein Zertifikat an Edge zur Authentifizierung vor.
Weitere Informationen finden Sie unter Informationen zu virtuellen Hosts.
TLS-Verbindungsinformationen erfassen
Während einer Anfrage an einen API-Proxy über einen virtuellen Host, der TLS unterstützt, kann Edge Informationen zur TLS-Verbindung. Ihr API-Proxy kann dann über um zusätzliche Analysen und Validierungen durchzuführen.
Der von Edge erfasste Typ der TLS-Informationen hängt davon ab, ob der virtuelle Host uni- oder bilaterale TLS unterstützt. Bei Einweg-TLS kann Edge beispielsweise Informationen über das TLS-Chiffre oder TLS-Protokoll, das in der TLS-Verbindung verwendet wird.
Bei bidirektionaler TLS kann Edge dieselben Informationen erfassen, die für unilaterale TLS aufgezeichnet werden, sowie Informationen über das Zertifikat des Clients. Edge kann beispielsweise den SHA1-Fingerabdruck des Clientzertifikats und des Clientzertifikats im PEM-Format erfassen.
Daten für beides erfassen unidirektionale und bidirektionale TLS
In der folgenden Tabelle sind die Flussvariablen aufgeführt, die die erfassten TLS-Verbindungsinformationen enthalten
von Edge und für den Zugriff über den API-Proxy verfügbar. Diese Informationen werden sowohl für Einbahnstraßen
und Zwei-Wege-TLS, indem Sie <ConnectionProperties>
im
Definition des virtuellen Hosts:
Ablaufvariable | Beschreibung |
---|---|
tls.cipher
|
Die Chiffren, die von der TLS-Verbindung verwendet werden. |
tls.protocol
|
Das Protokoll, das von der TLS-Verbindung verwendet wird. |
tls.server.name
|
Der angeforderte SNI-Servername. |
tls.session.id
|
Die Sitzungs-ID. Diese Flussvariable ist verfügbar, wenn Sie entweder |
Zusätzliche TLS-Informationen bei bidirektionaler TLS
In der folgenden Tabelle sind die Ablaufvariablen mit Details zum Clientzertifikat aufgeführt, die von Edge in bilateraler TLS erfasst wurden. Diese Informationen werden für bidirektionale TLS erfasst, indem <ClientProperties>
in der Definition des virtuellen Hosts auf „wahr“ gesetzt wird:
Ablaufvariable | Beschreibung |
---|---|
tls.client.s.dn
|
Der Betreff "Distinguished Name (DN)" des Clientzertifikats. |
tls.client.i.dn
|
Der Aussteller-DN (Distinguished Name, DN) des Clientzertifikats. |
tls.client.raw.cert
|
Das Clientzertifikat im PEM-Format. |
tls.client.cert.serial
|
Die Seriennummer des Clientzertifikats. |
tls.client.cert.fingerprint
|
SHA1-Fingerabdruck des Clientzertifikats. |
tls.session.id
|
Die Sitzungs-ID. Diese Flussvariable ist verfügbar, wenn Sie entweder
|
Virtuellen Host für die Erfassung von TLS-Informationen konfigurieren
Legen Sie die folgenden Attribute fest, um den virtuellen Host zum Erfassen von TLS-Informationen zu konfigurieren
unter <PropagateTLSInformation>
auf true
.
<ConnectionProperties>
: Erfassung von TLS-Verbindungsinformationen aktivieren für unidirektionale und bidirektionale TLS. Der Standardwert istfalse
.<ClientProperties>
: Aktivieren Sie die Erfassung zusätzlicher Informationen für die bidirektionale TLS-Verschlüsselung. Der Standardwert istfalse
.
Die folgende Definition für virtuelle Hosts verwendet beispielsweise Zwei-Wege-TLS und ermöglicht die Erfassung von beiden Arten von TLS-Informationen:
<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>
Wenn Sie einen JSON-Text übergeben, legen Sie die Eigenschaften so fest:
"propagateTLSInformation" : { "connectionProperties" : true, "clientProperties" : true }
Größenbeschränkungen für Kopfzeilen festlegen
Wenn Sie die Erfassung von TLS-Informationen auf einem virtuellen Host aktivieren, gibt Edge diese Informationen über HTTP-Header weiter. Sie müssen daher sicherstellen, dass die Größenbeschränkungen für Header entsprechend festgelegt sind. je nachdem, ob Sie Edge für die Cloud oder Edge für die Private Cloud verwenden:
- Edge for the Cloud: Apigee legt die Header-Größen entsprechend fest.
- Edge für die Private Cloud: Funktion nicht verfügbar.
Auf Ablaufvariablen in einem API-Proxy zugreifen
Über Ihren API-Proxy können Sie auf die TLS-Ablaufvariablen zugreifen und sie prüfen. Sie können beispielsweise mit der Richtlinie AssignMessage oder der JavaScript-Richtlinie darauf zugreifen.
Sie können auch in einem <Condition>
-Element eines Proxy- oder Zielablaufs auf die Flussvariablen verweisen.
oder in einem <Step>
oder <RouteRule>
. Sie können beispielsweise eine Anfrage je nach SN des Clients an verschiedene Ziele weiterleiten.
Weitere Informationen finden Sie unter: