POST/api/auth/sso/exchange
ขั้นตอนสุดท้ายของการเข้าสู่ระบบแบบ SSO (SAML/OIDC): นำรหัสครั้งเดียวที่ออกโดย Callback มาแลกกับ Session JWT ปกติ
หน้า „POST /api/auth/sso/exchange — เอกสารอ้างอิง API“ ครอบคลุมขอบเขตฟังก์ชันที่ระบุไว้ใน URL เนื้อหาที่มีอยู่ได้รับการเสริมด้วยขั้นตอนการทำงานจริง ข้อกำหนดเบื้องต้น และข้อจำกัดที่ทราบ Zentor ไม่มีระบบคีย์ API สำหรับนักพัฒนา สำหรับแดชบอร์ดจะใช้ Session-JWT ที่มีอายุสิบสองชั่วโมงและ Refresh-Token ที่มีอายุเจ็ดวัน ส่วน TOTP และ SSO เป็นตัวเลือกเสริม Widget-Embed-Token จะแสดงเป็นข้อความธรรมดาเพียงครั้งเดียวและผูกกับ Origin ที่ได้รับอนุญาต เอกสารสำหรับ `POST /api/auth/sso/exchange` ควรอ่านเป็นคำอธิบายทางเทคนิคที่มีผลผูกพันของปลายทาง (Endpoint) นี้โดยเฉพาะ สิ่งที่สำคัญคือเมธอด พาธ การยืนยันตัวตน ฟิลด์ที่จำเป็น ข้อผิดพลาดที่อาจเกิดขึ้น และคำถามว่าการเรียกซ้ำจะให้ผลเหมือนเดิมหรือไม่ ดังนั้นส่วนช่วยเหลือนี้ https://zentor-app.de/hilfe/api-referenz/auth/auth.sso_exchange จึงต้องไม่มีข้อความโฆษณาทั่วไป แต่มีเพียงขั้นตอนการผสานรวมที่ตรวจสอบย้อนกลับได้และตัวอย่างการตอบกลับที่มีหลักฐานยืนยันเท่านั้น สำหรับการเรียก `/api/auth/sso/exchange` คำขอจะถูกสร้างตาม Registry เส้นทางสาธารณะไม่ต้องใช้คีย์ API สำหรับนักพัฒนาแบบทั่วไป เพราะ Zentor ไม่มีระบบคีย์ดังกล่าว ในทางกลับกัน เส้นทางวิดเจ็ตที่ได้รับการป้องกันจะใช้ Embed-Token ที่แสดงเพียงครั้งเดียวและการตรวจสอบ Origin ต้องประเมินสถานะ HTTP และเนื้อหา JSON ร่วมกัน ฟิลด์ `ok` เพียงอย่างเดียวไม่สามารถทดแทนการจัดการข้อผิดพลาดได้ เมื่อทดสอบ `POST /api/auth/sso/exchange` ต้องใช้ค่าที่ไม่ระบุตัวตน ข้อมูลลูกค้าจริง UUID ของระบบที่ใช้งานจริง Session-Token และเวลาที่เจาะจงไม่ควรอยู่ในตัวอย่างสาธารณะ ขีดจำกัดทั่วทั้งแพลตฟอร์มที่ทราบคือ 2,000 คำขอภายใน 15 นาที ยังไม่มีหลักฐานว่ามีขีดจำกัดเฉพาะที่แตกต่างออกไป การเรียก POST ที่ไม่เป็น Idempotent ต้องไม่ถูกเรียกซ้ำโดยไม่ไตร่ตรองหลังจากการเชื่อมต่อเครือข่ายขาดหายโดยไม่ทราบผล ข้อผิดพลาดในการผสานรวมที่พบบ่อยสำหรับเส้นทางนี้เกิดจากพารามิเตอร์ที่จำเป็นขาดหายไป ชนิดข้อมูลไม่ถูกต้อง รหัสใช้ครั้งเดียวที่หมดอายุ Origin ที่ไม่ได้รับอนุญาต หรือชุดข้อมูลที่ยังไม่ได้พัฒนา แอปพลิเคชันควรจัดการกรณีเหล่านี้แยกกัน และบันทึกข้อความแสดงข้อผิดพลาดที่ปลายทางส่งกลับมาโดยไม่บันทึกเนื้อหาที่เป็นความลับ คำขอที่สำเร็จยืนยันเพียงขั้นตอนการประมวลผลนี้เท่านั้น ไม่ได้ยืนยันความสำเร็จของอีเมล การชำระเงิน หรือ SSO ที่เกิดขึ้นตามมาโดยอัตโนมัติ สิ่งนี้เกี่ยวข้องโดยตรงกับ „POST /api/auth/sso/exchange“ การตรวจสอบทางเทคนิคของหน้านี้ต้องอ้างอิง Registry ที่ `app/frontend/src/content/api-reference/` และเส้นทาง Backend ที่เกี่ยวข้องเท่านั้น บันทึกการทดสอบแบบสดต้องกล่าวอ้างเฉพาะสิ่งที่ได้ตรวจสอบจริงเท่านั้น การทดสอบเชิงลบหรือการเทียบเคียงจากโค้ดไม่ใช่หลักฐานความสำเร็จที่สมบูรณ์ ดังนั้นสำหรับ POST /api/auth/sso/exchange — เอกสารอ้างอิง API จึงต้องแยกให้ชัดเจนระหว่างโครงสร้างที่มีการบันทึกไว้ การทดสอบอัตโนมัติ และพฤติกรรมจริงที่สังเกตได้อย่างแน่นอน
การยืนยันตัวตนและความปลอดภัย
ไม่ต้องยืนยันตัวตน
Idempotent (เรียกซ้ำได้ผลเหมือนเดิม): ไม่
พารามิเตอร์
code(body, string, จำเป็น)— รหัสแลกเปลี่ยนครั้งเดียวจาก SSO Redirectตัวอย่างคำขอ
{"code":"<รหัสใช้ครั้งเดียวจากการเปลี่ยนเส้นทาง SSO-Callback>"}ตัวอย่างการตอบกลับ
{"ok":true,"token":"<JWT>","refreshToken":"<Refresh-Token>"}รหัสข้อผิดพลาด
400 SSO_EXCHANGE_INVALID — รหัสแลกเปลี่ยนไม่ถูกต้อง ถูกใช้งานไปแล้ว หรือหมดอายุหลักฐานการทดสอบแบบสด
ตรวจสอบสดแล้วกรณีล้มเหลว (400) ด้วยรหัสที่แต่งขึ้น; กรณีสำเร็จต้องมีการรีไดเรกต์ SAML/OIDC ครบทั้งกระบวนการพร้อม Identity-Provider จริง ซึ่งไม่ได้จำลองในสภาพแวดล้อมทดสอบนี้