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

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

Edge ให้คุณสร้างโฮสต์เสมือนที่รองรับ TLS แบบทางเดียวและ 2 ทางได้ เมื่อใช้ TLS แบบทางเดียว ไคลเอ็นต์จะส่งคำขอเซสชันไปยังโฮสต์เสมือนที่ติดตั้งใช้งานบนเราเตอร์ Edge และเราเตอร์จะตอบกลับด้วยใบรับรองที่มีคีย์สาธารณะของโฮสต์เสมือน สำหรับใบรับรองที่ลงชื่อแล้ว ไคลเอ็นต์จะส่งคำขอไปยังผู้ออกใบรับรอง (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 ได้

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

ตารางต่อไปนี้แสดงตัวแปรโฟลว์ที่มีข้อมูลการเชื่อมต่อ 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 หัวข้อ Distinguished Name (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 แบบทางเดียวและ 2 ทาง ค่าเริ่มต้นคือ 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 สำหรับ Cloud หรือ Edge สำหรับ Private Cloud หรือไม่

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

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

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

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

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