API proxy'sinde TLS bağlantı bilgilerine erişme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Edge, tek yönlü ve iki yönlü TLS'yi destekleyen sanal ana makineler oluşturmanıza olanak tanır. Tek yönlü TLS ile istemci, Uç Yönlendiricide dağıtılan bir sanal ana makineye oturum isteği gönderir ve Yönlendirici, sanal ana makinenin ortak anahtarını içeren bir sertifikayla yanıt verir. İmzalanmış bir sertifika için istemci, sertifikanın kimliğini doğrulamak üzere Sertifika Yetkilisine (CA) istekte bulunabilir.

İki yönlü TLS'de hem istemci hem de Edge, bir isteğin parçası olarak doğrulanan sertifikaları geçirir:

  • Uç Yönlendirici, kendi kimliğini doğrulamak için sertifikasını TLS istemcisine sunar. Ardından istemci, sertifikasını sunucuya göndermeden önce sunucunun kimliğini doğrular.
  • TLS istemcisi, kimliğini doğrulamak için sertifikasını Edge'e sunar.

Daha fazla bilgi için Sanal ana makineler hakkında başlıklı makaleyi inceleyin.

TLS bağlantı bilgilerini yakalama

TLS'yi destekleyen bir sanal ana makine üzerinden bir API proxy'sine yapılan istek sırasında Edge, TLS bağlantısı hakkında bilgi yakalayabilir. Böylece API proxy'niz, ek analiz ve doğrulama yapmak için akış değişkenleri aracılığıyla bu bilgilere erişebilir.

Edge'in yakaladığı TLS bilgilerinin türü, sanal ana makinenin tek yönlü veya iki yönlü TLS'yi destekleyip desteklemediğine bağlıdır. Örneğin, Edge tek yönlü TLS için TLS bağlantısında kullanılan TLS şifresi veya TLS protokolü hakkında bilgi yakalayabilir.

İki yönlü TLS söz konusu olduğunda Edge, tek yönlü TLS için yakalanan tüm bilgilerin aynısını yakalayabilir ve ayrıca istemcinin sertifikasıyla ilgili bilgileri de yakalayabilir. Örneğin Edge, istemci sertifikasının SHA1 parmak izini ve istemci sertifikasını PEM biçiminde yakalayabilir.

Hem tek yönlü hem de iki yönlü TLS için bilgileri yakalama

Aşağıdaki tabloda, Edge tarafından yakalanan ve API proxy'sinde erişim için kullanılabilir olan TLS bağlantı bilgilerini içeren akış değişkenleri listelenmiştir. Bu bilgiler, sanal ana makine tanımında <ConnectionProperties> doğru şekilde ayarlanarak hem tek yönlü hem de iki yönlü TLS için yakalanır:

Akış değişkeni Açıklama
tls.cipher TLS bağlantısı tarafından kullanılan şifre.
tls.protocol TLS bağlantısı tarafından kullanılan protokol.
tls.server.name İstenen SNI sunucu adı.
tls.session.id

Oturum tanımlayıcısı.

Bu akış değişkeni, <ConnectionProperties> veya <ClientProperties> ya da doğru değerine ayarladığınızda kullanılabilir.

İki yönlü TLS sırasında ek TLS bilgilerini yakalama

Aşağıdaki tabloda, Edge tarafından iki yönlü TLS'de yakalanan istemci sertifikası ayrıntılarını içeren akış değişkenleri listelenmektedir. Bu bilgiler, sanal ana makine tanımında <ClientProperties> politikasının doğru değerine ayarlanmasıyla iki yönlü TLS için yakalanır:

Akış değişkeni Açıklama
tls.client.s.dn İstemci sertifikasının konu Ayırt Edici Adı (DN).
tls.client.i.dn İstemci sertifikasını verenin Ayırt Edici Adı (DN).
tls.client.raw.cert PEM biçimindeki istemci sertifikası.
tls.client.cert.serial İstemci sertifikasının seri numarası.
tls.client.cert.fingerprint İstemci sertifikasının SHA1 parmak izi.
tls.session.id

Oturum tanımlayıcısı.

Bu akış değişkenini, <ConnectionProperties> veya <ClientProperties> değerini doğru değerine ayarladığınızda kullanılabilir.

Sanal ana makineyi TLS bilgilerini yakalayacak şekilde yapılandırma

Sanal ana makineyi TLS bilgilerini yakalayacak şekilde yapılandırmak için <PropagateTLSInformation> bölümünün altındaki aşağıdaki özellikleri true olarak ayarlayın.

  • <ConnectionProperties>: Hem tek yönlü hem de çift yönlü TLS için TLS bağlantı bilgilerinin yakalanmasını etkinleştirin. Varsayılan değer: false.
  • <ClientProperties>: İki yönlü TLS için ek bilgilerin yakalanmasını etkinleştirin. Varsayılan değer: false.

Örneğin, aşağıdaki sanal ana makine tanımı iki yönlü TLS kullanır ve her iki TLS bilgisi türünün de yakalanmasını sağlar:

<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>

Bir JSON gövdesi iletiyorsanız özellikleri şu şekilde ayarlayın:

  "propagateTLSInformation" : {
    "connectionProperties" : true,
    "clientProperties" : true
  }

Başlık boyutu sınırlarını ayarlama

Sanal bir ana makinede TLS bilgilerinin yakalanmasını etkinleştirdiğinizde, Edge bu bilgileri HTTP üst bilgilerini kullanarak iletir. Bu nedenle, Cloud için Edge veya Private Cloud için Edge kullanmanıza bağlı olarak üst bilgi boyutu sınırlarının uygun şekilde ayarlandığından emin olmanız gerekir:

  • Edge for the Cloud: Apigee, üst bilgi boyutlarını uygun şekilde ayarlar.
  • Edge for the Private Cloud: Bu özellik kullanılamaz.

API proxy'sinde akış değişkenlerine erişme

API proxy'nizden, TLS akış değişkenlerine erişebilir ve bunları inceleyebilirsiniz. Örneğin, bunlara erişmek için AssignMessage politikasını kullanabilir ve bu politikalara JavaScript politikasıyla JavaScript'te erişebilirsiniz.

Bir proxy veya hedef akışın <Condition> öğesinde ya da <Step> veya <RouteRule> öğesinde de akış değişkenlerine başvurabilirsiniz. Örneğin, bir isteği, istemcinin SN'sine göre farklı hedeflere yönlendirebilirsiniz.

Daha fazla bilgi için: