• release

อัปเดตผลิตภัณฑ์ Logto (สิงหาคม 2024)

สำรวจการเปิดตัวในเดือนสิงหาคม 2024 ของเราที่มีการแกล้งเป็นผู้ใช้ การจัดการความลับของแอปพลิเคชัน การสร้างแบรนด์ประสบการณ์การลงชื่อเข้าใช้ระดับองค์กรและแอปพลิเคชัน และอื่น ๆ อีกมากมาย

Simeng
Simeng
Developer

การแกล้งเป็นผู้ใช้ (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 ที่กำหนดเอง