OpenAI Mutual TLS ช่วยให้องค์กรเพิ่มชั้นความปลอดภัยเพิ่มเติมสำหรับทราฟฟิก OpenAI API ของตนได้ เมื่อตั้งค่าแล้ว คำขอ API ควรถูกส่งไปที่ https://mtls.api.openai.com (หรือ https://mtls-eu.api.openai.com สำหรับลูกค้าที่มีข้อกำหนดถิ่นที่อยู่ของข้อมูลใน EU) และระบบจะยอมรับทราฟฟิกก็ต่อเมื่อมีการส่ง API key และ client certificate ที่ถูกต้องมาด้วย mTLS ไม่ครอบคลุม Dashboard ที่ https://platform.openai.com ฟีเจอร์นี้อยู่ในสถานะ เบต้า อยู่ในขณะนี้
ฉันจะตั้งค่าการผสานรวม mTLS ได้อย่างไร?
ในแถบนำทางการตั้งค่า คุณจะเห็นแท็บ “Mutual TLS”
อัปโหลดใบรับรอง
เปิดใช้งานใบรับรอง
หลังจากอัปโหลดใบรับรองของคุณแล้ว ขั้นตอนถัดไปคือ เปิดใช้งาน ใบรับรองของคุณ เมื่อใบรับรองถูกเปิดใช้งานสำหรับโปรเจกต์แล้ว คำขอ API ทั้งหมดที่ส่งไปยังโปรเจกต์นั้นจะเริ่มต้องใช้ client certificate ที่สอดคล้องกันด้วย หากโปรเจกต์มีใบรับรองที่เปิดใช้งานอยู่หลายใบ คุณสามารถส่ง client certificate ที่สอดคล้องกันใบใดก็ได้ หากมีการเปิดใช้งานใบรับรองสำหรับองค์กร ใบรับรองนั้นจะมีผลกับคำขอ API ทั้งหมด และจะถูก “สืบทอด” ไปยังทุกโปรเจกต์
ข้อกำหนดของ CA certificate
คุณสามารถอัปโหลด X.509 CA certificate ในรูปแบบ PEM ใดก็ได้ที่ตรงตามข้อกำหนดต่อไปนี้:
ลงนาม client certificate ที่คุณวางแผนจะใช้ส่งคำขอโดยตรง
มีส่วนขยาย Certificate Authority, Subject Key Identifier และ Authority Key Identifier (ในรูปแบบ KeyIdentifier)
มีสิทธิ์ Key Usage: “Certificate Sign, CRL Sign”
ไม่ได้ถูกตั้งค่าให้หมดอายุภายใน 1 วัน
ขนาดรวมของใบรับรองต้องน้อยกว่า 16kb
ข้อกำหนดของ client certificate
client certificate ต้องถูกลงนามโดยตรงโดยใบรับรองที่คุณอัปโหลดไว้ล่วงหน้า ขณะนี้เรารองรับเฉพาะ certificate chain แบบความยาวเดียวเท่านั้น นอกจากนั้น client certificate ของคุณต้องตรงตามข้อกำหนดต่อไปนี้:
มีส่วนขยาย Subject Key Identifier และ Authority Key Identifier (ในรูปแบบ KeyIdentifier)
มีสิทธิ์ Key Usage: “Digital Signature, Key Encipherment”
มีสิทธิ์ Extended Key Usage: “TLS Web Client Authentication”
มีส่วนขยาย Subject Alternate Name
คำถามที่พบบ่อย
ฉันสามารถกำหนดค่า mTLS ผ่าน API ได้หรือไม่?
ได้ — คุณสามารถดู API Reference ได้ที่ https://platform.openai.com/docs/api-reference/ เพื่อดูข้อมูลเพิ่มเติม
endpoint ใดรองรับ mTLS บ้าง?
ในช่วงเบต้านี้ mTLS ได้รับการรองรับอย่างเป็นทางการใน
/v1/chat/completions (พร้อมส่วนขยายที่รองรับทั้งหมด เช่น image, audio, streaming เป็นต้น)/v1/completions/v1/embeddings/v1/audio/transcriptions/v1/audio/speech/v1/files/v1/batches/v1/responses/v1/images/v1/moderations/v1/realtime (ผ่าน web sockets ฝั่งเซิร์ฟเวอร์)/v1/fine_tuning/v1/tunnels
ฉันจะส่ง client certificate ไปพร้อมกับคำขอได้อย่างไร?
สำหรับคำขอ cURL คุณสามารถใช้ตัวเลือก --cert และ --key ได้ (ดู man page ที่นี่) ใน HTTP client อื่น ๆ ส่วนใหญ่ ก็มีวิธีส่ง client certificate ได้เช่นกัน ตัวอย่าง: requests ใน python, fetch ใน js ผ่าน SDK อย่างเป็นทางการของเรา เรารองรับการแทนที่ HTTP client ได้ด้วย — ดูตัวอย่าง Python ที่นี่
ก่อนบังคับใช้ mTLS กับทราฟฟิกโปรดักชัน โปรดตรวจสอบให้แน่ใจว่า HTTP client ที่คุณใช้ทำงานร่วมกับคำขอ client certificate ได้ดี (บางตัว เช่น WebSockets ในบางเบราว์เซอร์ จะไม่รองรับ) โปรดทราบว่าเซิร์ฟเวอร์ของเราไม่ได้ให้ list ของ certificate_authorities ในคำขอ client certificate
ใครบ้างที่เข้าถึงและแก้ไขใบรับรองได้?
ผ่าน Dashboard UI ที่ https://platform.openai.com/settings/organization/mtls เจ้าขององค์กรสามารถเข้าถึงและแก้ไขใบรับรองได้ ผู้ที่มี Admin API Key (https://platform.openai.com/settings/organization/admin-keys) ก็สามารถเข้าถึง/แก้ไขใบรับรองได้เช่นกัน แต่โปรดระวัง — หากคุณเปิดใช้ Mutual TLS ในระดับองค์กร คุณจะบังคับใช้ใบรับรองกับคำขอ API เหล่านี้ด้วย การเปลี่ยนแปลง mTLS ทั้งหมดสามารถดูได้ใน audit logs
ฉันสามารถมีใบรับรองได้กี่ใบ?
แต่ละองค์กรสามารถอัปโหลดใบรับรองได้สูงสุด 50 ใบ ซึ่งแชร์ข้ามโปรเจกต์ได้ แต่แชร์กับองค์กรอื่นไม่ได้ คุณสามารถเปิดใช้งาน/ปิดใช้งานใบรับรองแบบอะตอมมิกได้ครั้งละ 10 โปรเจกต์ หรืออีกทางหนึ่ง คุณสามารถเปิดใช้งาน/ปิดใช้งานใบรับรองได้ครั้งละ 10 ใบสำหรับองค์กรของคุณ หรือสำหรับ 1 โปรเจกต์ที่ระบุ
ฉันสามารถอัปเดตหรือลบใบรับรองได้หรือไม่?
คุณสามารถอัปเดตชื่อของใบรับรองได้ แต่ไม่สามารถอัปเดตเนื้อหาได้ คุณยังสามารถลบใบรับรองได้หากใบรับรองนั้นไม่ได้เปิดใช้งานอยู่ในขอบเขตใด ๆ
การเพิกถอนใบรับรองทำงานอย่างไร?
ขณะนี้เรายังไม่รองรับ CRLs หรือ OCSP stapling ทางเลือกที่แนะนำคือให้ลบหรือหมุนเวียน API key ของคุณแทน คุณยังสามารถสลับ CA certificate ของคุณ หรือใช้ client certificate ที่มีช่วงอายุการใช้งานสั้นลงได้
ฉันสามารถใช้ certificate chain ที่ยาวกว่านี้ได้หรือไม่?
ขณะนี้เรารองรับเฉพาะ chain แบบความยาวเดียวเท่านั้น — กล่าวคือ CA certificate ของคุณควรลงนาม client certificate ของคุณโดยตรง โปรดติดต่อ Account Director ของคุณหากคุณมีคำถามเพิ่มเติม
การตั้งค่าที่แนะนำคืออะไร?
เมื่อเริ่มตั้งค่าฟีเจอร์นี้ในครั้งแรก เราแนะนำให้เริ่มด้วยโปรเจกต์ staging ที่ไม่ได้ให้บริการทราฟฟิกโปรดักชันจริง ใช้โอกาสนี้เพื่อตรวจสอบให้แน่ใจว่าใบรับรองของคุณถูกตั้งค่าอย่างถูกต้องบนเครื่องของคุณ และคุณสามารถส่งทราฟฟิก API ได้สำเร็จ นอกจากนี้ เราแนะนำให้ปรึกษาทีมความปลอดภัยขององค์กรของคุณเพื่อทำความเข้าใจความต้องการของคุณให้ดีที่สุด
การสนับสนุนเพิ่มเติม
คุณสามารถจัดการฟีเจอร์ mTLS ได้ด้วยตนเองทั้งหมดผ่านแดชบอร์ดและ API อย่างไรก็ตาม หากคุณต้องการเปิดใช้ mTLS ในโหมดเงาก่อน โปรดติดต่อ Account Director ของคุณ หรือเปิดทิกเก็ตซัพพอร์ตโดยเริ่มแชทใหม่ที่มุมล่างขวาของหน้านี้
ภาคผนวก: คำศัพท์
CA certificate: หนึ่งในใบรับรองที่คุณเชื่อถือ ซึ่งได้ลงนาม client certificate ที่คุณจะส่งไปพร้อมกับคำขอโดยตรง คุณสามารถใช้ CA certificate แบบ self-signed ได้
อัปโหลดใบรับรอง: การเพิ่ม CA certificate ลงในบัญชีของคุณ ในขั้นนี้ยังไม่มีการบังคับใช้กับ mTLS ที่ใด แต่คุณสามารถเริ่มกำหนดค่าได้
ขอบเขต: โปรเจกต์ที่ระบุหรือทั้งองค์กรของคุณ
เปิดใช้งาน CA certificate ในขอบเขตหนึ่ง: เปิดใช้ mTLS สำหรับขอบเขตนั้นโดยเฉพาะ และคำขอทั้งหมดที่อิง API key จะต้องใช้ client certificate ที่ลงนามโดย CA certificate นั้น
ปิดใช้งาน CA certificate ในขอบเขตหนึ่ง: ปิดการใช้ใบรับรองนี้เพื่อตรวจสอบคำขอในขอบเขตนี้ หากไม่มีใบรับรองเหลืออยู่สำหรับขอบเขตนั้น mTLS จะถือว่าถูกปิดใช้งานโดยปริยาย
การสืบทอดใบรับรอง: หากคุณเปิดใช้งานใบรับรองสำหรับองค์กรของคุณ ใบรับรองนั้นจะถูกเปิดใช้งานสำหรับทุกโปรเจกต์ด้วย
