การเข้าถึงข้อมูลการเชื่อมต่อ TLS ในพร็อกซี API

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

Edge ช่วยให้คุณสร้างโฮสต์เสมือนที่รองรับ TLS แบบทางเดียวและ 2 ทาง ด้วย TLS แบบทางเดียว ไคลเอ็นต์จะออกคำขอเซสชันไปยังโฮสต์เสมือนที่ใช้งานใน Edge Router และเราเตอร์ ตอบกลับด้วยใบรับรองที่มีคีย์สาธารณะของโฮสต์เสมือน สำหรับใบรับรองที่ลงชื่อ ไคลเอ็นต์ จึงสามารถส่งคำขอไปยังผู้ออกใบรับรอง (CA) เพื่อตรวจสอบสิทธิ์ใบรับรอง

ใน TLS แบบ 2 ทาง จะมีการรับรองทั้งไคลเอ็นต์และ Edge Pass ที่มีการตรวจสอบเป็นส่วนหนึ่งของคำขอ ดังนี้

  • เราเตอร์ Edge จะแสดงใบรับรองของตนกับไคลเอ็นต์ TLS เพื่อตรวจสอบสิทธิ์ตนเอง ลูกค้า จากนั้นจึงยืนยันตัวตนของเซิร์ฟเวอร์ก่อนที่จะส่งใบรับรองไปยังเซิร์ฟเวอร์
  • ไคลเอ็นต์ TLS จะแสดงใบรับรองของตนต่อ Edge เพื่อตรวจสอบสิทธิ์ตนเอง

โปรดดูเกี่ยวกับโฮสต์เสมือนสำหรับข้อมูลเพิ่มเติม

กำลังบันทึกข้อมูลการเชื่อมต่อ TLS

ในระหว่างการส่งคำขอไปยังพร็อกซี API ผ่านโฮสต์เสมือนที่รองรับ TLS Edge จะจับภาพได้ ข้อมูลเกี่ยวกับการเชื่อมต่อ TLS จากนั้นพร็อกซี API ของคุณจะสามารถเข้าถึงข้อมูลดังกล่าวผ่านทาง ของตัวแปรเพื่อดำเนินการวิเคราะห์และตรวจสอบเพิ่มเติม

ประเภทของข้อมูล TLS ที่ Edge บันทึกไว้จะขึ้นอยู่กับว่าโฮสต์เสมือนจะรองรับหรือไม่ TLS แบบทางเดียวหรือ 2 ทาง ตัวอย่างเช่น สำหรับ TLS ทางเดียว Edge สามารถบันทึกข้อมูลเกี่ยวกับ การเข้ารหัส TLS หรือโปรโตคอล TLS ที่ใช้ในการเชื่อมต่อ TLS

สำหรับ TLS แบบ 2 ทาง Edge สามารถเก็บข้อมูลทั้งหมดเดียวกับที่จับภาพสำหรับ TLS ทางเดียว และบันทึกข้อมูลเกี่ยวกับใบรับรองของลูกค้าด้วย ตัวอย่างเช่น Edge บันทึกลายนิ้วมือ SHA1 ได้ และใบรับรองไคลเอ็นต์ในรูปแบบ PEM

กำลังบันทึกข้อมูลสำหรับทั้ง 2 เวอร์ชัน TLS แบบทางเดียวและ 2 ทาง

ตารางต่อไปนี้แสดงรายการตัวแปรโฟลว์ที่มีข้อมูลการเชื่อมต่อ TLS ที่บันทึก โดย Edge และพร้อมให้เข้าถึงในพร็อกซี API ข้อมูลนี้จะได้รับการบันทึกสำหรับทั้งทางเดียว และ TLS แบบ 2 ทางโดยการตั้งค่า <ConnectionProperties> เป็น "จริง" ใน คำจำกัดความของโฮสต์เสมือน:

ตัวแปรโฟลว์ คำอธิบาย
tls.cipher การเข้ารหัสที่การเชื่อมต่อ TLS ใช้
tls.protocol โปรโตคอลที่ใช้โดยการเชื่อมต่อ TLS
tls.server.name ชื่อเซิร์ฟเวอร์ SNI ที่ขอ
tls.session.id

ตัวระบุเซสชัน

ตัวแปรขั้นตอนนี้จะใช้ได้เมื่อคุณตั้งค่า <ConnectionProperties> หรือ <ClientProperties> หรือเป็นจริง

การบันทึกข้อมูล TLS เพิ่มเติมระหว่าง TLS แบบ 2 ทาง

ตารางต่อไปนี้แสดงตัวแปรโฟลว์ที่มีรายละเอียดใบรับรองไคลเอ็นต์ที่ Edge บันทึกไว้ ใน TLS แบบ 2 ทาง ระบบจะบันทึกข้อมูลนี้สำหรับ TLS แบบ 2 ทางโดยการตั้งค่า <ClientProperties> เป็นจริงในคำจำกัดความของโฮสต์เสมือน

ตัวแปรโฟลว์ คำอธิบาย
tls.client.s.dn ชื่อเฉพาะ (DN) ของใบรับรองไคลเอ็นต์
tls.client.i.dn Distinguished Name (DN) ของผู้ออกใบรับรองของใบรับรองไคลเอ็นต์
tls.client.raw.cert ใบรับรองไคลเอ็นต์ในรูปแบบ PEM
tls.client.cert.serial หมายเลขซีเรียลของใบรับรองไคลเอ็นต์
tls.client.cert.fingerprint ลายนิ้วมือ SHA1 ของใบรับรองไคลเอ็นต์
tls.session.id

ตัวระบุเซสชัน

ตัวแปรขั้นตอนนี้จะใช้ได้เมื่อคุณตั้งค่า <ConnectionProperties> หรือ <ClientProperties> เป็นจริง

การกำหนดค่าโฮสต์เสมือนเพื่อบันทึกข้อมูล TLS

หากต้องการกำหนดค่าโฮสต์เสมือนเพื่อบันทึกข้อมูล TLS ให้ตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ ต่ำกว่า <PropagateTLSInformation> ถึง true

  • <ConnectionProperties>: เปิดใช้การบันทึกข้อมูลการเชื่อมต่อ TLS สำหรับ TLS ทั้งทางเดียวและสองทาง ค่าเริ่มต้นคือ false
  • <ClientProperties>: เปิดใช้การบันทึกข้อมูลเพิ่มเติม สำหรับ TLS แบบ 2 ทาง ค่าเริ่มต้นคือ false

ตัวอย่างเช่น คำจำกัดความของโฮสต์เสมือนต่อไปนี้ใช้ TLS แบบ 2 ทาง และเปิดใช้งานการบันทึก ข้อมูล TLS ทั้ง 2 ประเภท

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

หากคุณส่งเนื้อหา JSON ให้ตั้งค่าพร็อพเพอร์ตี้เป็น

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

ตั้งค่าขีดจำกัดของขนาดส่วนหัว

เมื่อคุณเปิดใช้การบันทึกข้อมูล TLS บนโฮสต์เสมือน Edge จะส่งข้อมูลดังกล่าว โดยใช้ส่วนหัว HTTP ดังนั้นคุณต้องตรวจสอบว่าขีดจำกัดของขนาดส่วนหัวได้รับการตั้งค่าอย่างเหมาะสม โดยขึ้นอยู่กับว่าคุณใช้ Edge สำหรับระบบคลาวด์ หรือ Edge สำหรับ Private Cloud ดังนี้

  • Edge for the Cloud: Apigee จะกำหนดขนาดส่วนหัวอย่างเหมาะสม
  • Edge for the Private Cloud: ฟีเจอร์นี้ไม่พร้อมใช้งาน

การเข้าถึงตัวแปรโฟลว์ในพร็อกซี API

จากภายในพร็อกซี API คุณสามารถเข้าถึงและตรวจสอบตัวแปรโฟลว์ TLS ได้ เช่น คุณสามารถใช้ฟังก์ชัน AssignMessage นโยบายเพื่อเข้าถึงรายการ ให้เข้าถึงได้ใน JavaScript ด้วยนโยบาย JavaScript

คุณยังอ้างอิงตัวแปรโฟลว์ในเอลิเมนต์ <Condition> ของพร็อกซีหรือโฟลว์เป้าหมายได้ด้วย หรือใน <Step> หรือ <RouteRule> เช่น คุณอาจกำหนดเส้นทาง คำขอไปยังเป้าหมายต่างๆ ตาม SN ของลูกค้า

ดูข้อมูลเพิ่มเติมได้จากหัวข้อต่อไปนี้