อัปเดตผลิตภัณฑ์ Logto (สิงหาคม 2024)
สำรวจการเปิดตัวในเดือนสิงหาคม 2024 ของเราที่มีการแกล้งเป็นผู้ใช้ การจัดการความลับของแอปพลิเคชัน การสร้างแบรนด์ประสบการณ์การลงชื่อเข้าใช้ระดับองค์กรและแอปพลิเคชัน และอื่น ๆ อีกมากมาย
การแกล้งเป็นผู้ใช้ (RFC 8693: OAuth 2.0 Token Exchange)
เพิ่มการสนับสนุนสำหรับการแกล้งเป็นผู้ใช้ผ่าน Token Exchange:
- จุดปลาย API การจัดการใหม่
POST /subject-tokens
เพื่อขอsubject_token
สำหรับการใช้งาน token exchange - อัปเดตจุดปลาย OIDC
POST /oidc/token
ด้วยประเภทการให้สิทธิ์ใหม่urn:ietf:params:oauth:grant-type:token-exchange
เพื่อแลกเปลี่ยนsubject_token
เป็นaccess_token
สำหรับการแกล้งเป็นผู้ใช้
ดู User impersonation สำหรับรายละเอียดเพิ่มเติม
ระดับแอปพลิเคชัน custom_data
เพิ่มฟิลด์วัตถุใหม่ custom_data
ลงในแอปพลิเคชัน ฟิลด์นี้สามารถจัดเก็บข้อมูลเพิ่มเติมใด ๆ ที่ไม่ได้กำหนดในสคีมาตรฐาน Application
คลิกเพื่อขยายอัปเดต Management API
- จุดปลาย
PATCH /api/applications/{applicationId}/custom-data
ใหม่สำหรับการอัปเดตcustom_data
ฟิลด์ของแอปพลิเคชัน - อัปเดตจุดปลาย
PATCH /api/applications/{applicationId}
เพื่อให้สามารถเขียนทับฟิลด์custom_data
คลิกเพื่อขยายอัปเดต Console
เพิ่มโปรแกรมแก้ไขข้อมูล JSON ที่กำหนดเองใหม่ในหน้าแอปพลิเคชันรายละเอียด (ยกเว้นแอปพลิเคชันที่ได้รับการปกป้อง)
การจัดการความลับของแอปที่หลากหลาย
แอปที่มีการรักษาความปลอดภัย (machine-to-machine, traditional web, Protected) สามารถมีความลับของแอปหลายรายการพร้อมวันหมดอายุได้แล้ว ซึ่งช่วยให้หมุนเวียนความลับและให้ประสบการณ์ที่ปลอดภัยยิ่งขึ้น
หมายเหตุ: ความลับเดิมที่สร้างก่อนคุณลักษณะนี้ยังสามารถใช้สำหรับการตรวจสอบสิทธิ์ของลูกค้าได้ แนะนำให้ลบความลับเก่าและสร้างความลับใหม่ที่มีวันหมดอายุเพื่อเพิ่มความปลอดภัย
คลิกเพื่อขยายอัปเดต Management API
GET /api/applications/{applicationId}/secrets
: แสดงรายการความลับทั้งหมดของแอปพลิเคชันPOST /api/applications/{applicationId}/secrets
: สร้างความลับใหม่สำหรับแอปพลิเคชันDELETE /api/applications/{applicationId}/secrets/{name}
: ลบความลับของแอปพลิเคชันตามชื่อPATCH /api/applications/{applicationId}/secrets/{name}
: อัปเดตความลับของแอปพลิเคชันตามชื่อDELETE /api/applications/{applicationId}/legacy-secret
: ลบความลับเดิมของแอปพลิเคชันและแทนที่ด้วยความลับใหม่
คลิกเพื่อขยายอัปเดต Console
ในการจัดการความลับของแอปพลิเคชันของคุณ ไปที่ Logto Console -> แอปพลิเคชัน -> รายละเอียดแอปพลิเคชัน -> จุดปลาย & ข้อมูลประจำตัว
ฟิลด์อินพุตสำหรับการอ่านเฉพาะความลับของแอปเดิมถูกแทนที่ด้ว ยตารางการจัดการความลับใหม่ คุณสามารถสร้าง อัปเดต และลบความลับในตารางนี้ได้
การสร้างแบรนด์ระดับองค์กรและแอปพลิเคชัน
โลโก้องค์กร
ตอนนี้สามารถตั้งค่าโลโก้แบบแสงและมืดสำหรับองค์กรได้แล้ว คุณสามารถอัปโหลดโลโก้ในหน้าการตั้งค่าองค์กร
นอกจากนี้ยังสามารถแทนที่โลโก้ประสบการณ์การลงชื่อเข้าใช้จากองค์กรได้ เพียงเพิ่มพารามิเตอร์ organization_id
ไปยังคำขอการตรวจสอบสิทธิ์ ใน Logto SDK ส่วนใหญ่ สามารถทำได้โดยใช้ฟิลด์ extraParams
ในเมธอด signIn
เช่นใน JavaScript SDK:
ค่าของ <organization-id>
สามารถพบได้ในหน้าการตั้งค่าองค์กร
หากคุณไม่พบฟิลด์ extraParams
ใน SDK ที่คุณกำลังใช้ โปรดแจ้งให้เราทราบ
การสร้างแบรนด์ระดับแอปพลิเคชัน
คุณสามารถตั้งค่าโลโก้, ไอคอนโปรด และสีสำหรับแอปของคุณได้แล้ว การตั้งค่าเหล่านี้จะใช้ในประสบการณ์การลงชื่อเข้าใช้เมื่อแอปเริ่มต้นโฟลว์การตรวจสอบสิทธิ์ สำหรับแอปที่ไม่มีการตั้งค่าการสร้างแบรนด์ การสร้างแบรนด์ประสบการณ์การลงชื่อเข้าใช้แบบ omni จะถูกใช้
หากมีการให้ organization_id
ในคำขอการตรวจสอบสิทธิ์ การตั้งค่าการสร้างแบรนด์ระดับแอปจะถูกแทนที่ด้วยการตั้งค่าการสร้างแบรนด์ขององค์กร หากมี
การปรับปรุงประสิทธิภาพ
การสนับสนุนการเสนอประสบการณ์ของแอปเซิร์ฟเวอร์ฝั่ง
Logto ตอนนี้ฉีดการตั้งค่าและวลีประสบการณ์การลงชื่อเข้าใช้ลงในไฟล์ index.html
เพื่อประสิทธิภาพของหน้าจอแรกที่ดียิ่งขึ้น ยังประสบการณ์ของแอปจะดึงการตั้งค่าและวลีจากเซิร์ฟเวอร์หาก:
- เซิร์ฟเวอร์ไม่ได้ฉีดการตั้งค่าและวลี
- พารามิเตอร์ใน URL แตกต่างจากข้อมูลที่เรนเดอร์จากเซิร์ฟเวอร์
การปรับปรุงการสร้างแพ็กเกจ
- ใช้
tsup
เพื่อสร้างแพ็กเกจเชื่อมต่อ วิธีนี้จะทำให้กระบวนการสร้างรวดเร็วขึ้น และไม่ควรส่งผลต่อฟังก์ชันการทำงานของแพ็กเกจ - ใช้
Vite
สำหรับการแปลงและบันเดิลแพ็กเกจ@logto/console
,@logto/demo-app
และ@logto/experience
ลบ ParcelJS และแทนที่ด้วย Vite ไม่ควรคาดหวังการเปลี่ยนแปลงที่ไม่สามารถยอมรับได้
การแก้ไขข้อบกพร่อง
แก้ไขพฤติกรรมการอัปเดต jsonb ของจุดปลาย PATCH /api/applications/{applicationId}
ฟิลด์ jsonb ทั้งหมดของวัตถุ Application
ควรถูกอัปเดตในโหมด replace
แทน merge
การเปลี่ยนแปลงนี้จะทำให้เมธอด PATCH
คาดการณ์ได้น่าเชื่อถือขึ้นและสอดคล้องกับการออกแบบ API ของ Restful มากขึ้น
- อัปเดตโหมดการอัปเดตฟิลด์ jsonb จาก
merge
เป็นreplace
ในจุดปลายPATCH /api/applications/{applicationId}
- อัปเดตการตรวจสอบพารามิเตอร์การใส่ข้อมูลฟิลด์ API jsonb จาก
partial
เป็นfull
ในจุดปลายPATCH /api/applications/{applicationId}
- ฟิลด์ที่ได้ร ับผลกระทบ:
oidc_client_metadata
,custom_client_metadata
,protected_app_metadata
และcustom_data
หมายเหตุ: หากคุณใช้ Logto console เพื่อปรับปรุงการตั้งค่า
Application
ของคุณ คุณจะไม่ได้รับผลกระทบจากการเปลี่ยนแปลงนี้ ผู้ใช้ API ที่ใช้เมธอดPATCH
เพื่อปรับปรุงการตั้งค่าฟิลด์ jsonb ของApplication
ควรระวังการเปลี่ยนแปลงนี้ เมธอดPATCH
จะเปลี่ยนทั้งฟิลด์ jsonb ด้วยข้อมูลที่ใส่ใหม่ ข้อมูลที่ใส่บางส่วนของฟิลด์ที่ได้รับผลกระทบจะโดนปฏิเสธ
แก้ไขบางส่วนของ payload เหตุการณ์ webhook ที่มักจะคืนสถานะการตอบกลับ API 404 เสมอ
เหตุการณ์ webhook ที่ได้รับผลกระทบ: Role.Scopes.Updated
, Organizations.Membership.Updates
รหัสสถานะคำตอบ API ที่คืนจาก payload เ หตุการณ์ webhook เป็น 404 เสมอ ซึ่งเกิดจากการใส่ payload เหตุการณ์ webhook ก่อนที่จะตั้งค่าบริบทการตอบกลับ API
เนื่องจากเราเพียงแต่เรียก webhook เมื่อเหตุการณ์ได้รับผลสำเร็จ ดังนั้นรหัสสถานะควรเป็น 2xx เสมอ
ปัญหานี้ได้รับการแก้ไขโดยการย้ายการใส่ payload เหตุการณ์ webhook หลังจากการตั้งค่าบริบทการตอบกลับ API
การปรับปรุงอื่น ๆ
- ตอนนี้สามารถตั้งค่าไอคอนโปรดสำหรับธีมมืดในการตั้งค่าการสร้างแบรนด์ประสบการณ์การลงชื่อเข้าใช้
- เพิ่มอัลกอริทึมการย่อยรหัสผ่านใหม่:
Argon2d
และArgon2id
ผู้ใช้ที่มีอัลกอริทึมเหล่านั้นจะถูกย้ายไปที่Argon2i
เมื่อเข้าสู่ระบบสำเร็จ - การกำหนดค่ารายการเบราว์เซอร์สำหรับ
@logto/experience
ได้รับการซิงค์กับที่ระบุในREADME.md
- ปรับปรุงคำอธิบายการตรวจสอบสิทธิ์ swagger ใช้สคีมาความปลอดภัย OAuth2 ใน Native OpenAPI แทนสคีมาความปลอดภัยตาม HTTP header ที่กำหนดเอง