• release

อัปเดตผลิตภัณฑ์ Logto

Logto v1.41.0 มาพร้อมการควบคุมการเข้าถึงในระดับแอป นโยบายการหมดอายุรหัสผ่าน อัปเกรด Account Center ครั้งใหญ่ กำหนดกฎชื่อผู้ใช้และรหัสยืนยันแบบกำหนดเอง การส่งข้อความที่ปลอดภัยยิ่งขึ้น และการเสริมความแข็งแกร่งด้านโปรโตคอล/ความปลอดภัยในหลายส่วน

Sijie
Sijie
Developer

หยุดเสียเวลาเป็นสัปดาห์กับการยืนยันตัวตนผู้ใช้
เปิดตัวแอปที่ปลอดภัยเร็วขึ้นด้วย Logto ผสานการยืนยันตัวตนผู้ใช้ภายในไม่กี่นาทีและมุ่งเน้นที่ผลิตภัณฑ์หลักของคุณ
เริ่มต้นใช้งาน
Product screenshot

Logto v1.41.0 เป็นเวอร์ชันที่เน้นการควบคุมและความปลอดภัย มันมอบวิธีเลือกผู้มีสิทธิ์เข้าถึงแต่ละแอปที่ละเอียดมากขึ้น ควบคุมวงจรรหัสผ่านได้สมบูรณ์กว่าเดิม และ Account Center ที่ทรงพลังยิ่งขึ้นสำหรับผู้ใช้ปลายทาง นอกจากนี้ยังรัดกุมยิ่งขึ้นในเรื่องการส่งรหัสยืนยัน กฎชื่อผู้ใช้ การจัดการ SAML/OIDC การป้องกันการใช้ MFA ซ้ำ และเส้นทางอัปเกรดสำหรับการโฮสต์เอง นี่คือสิ่งใหม่ ๆ ที่เพิ่มเข้ามา

การควบคุมการเข้าถึงในระดับแอป

ตอนนี้คุณสามารถจำกัดการเข้าถึงแอปพลิเคชันได้โดยตรงจาก Logto กฎการเข้าถึงสามารถกำหนดเป้าหมายเป็นผู้ใช้เฉพาะ บทบาทผู้ใช้ องค์กร หรือบทบาทขององค์กร

เมื่อผู้ใช้ไม่ตรงตามกฎที่กำหนดไว้ Logto จะบล็อกการลงชื่อเข้าใช้หรือการเข้าถึงแอปด้วยหน้าการปฏิเสธสิทธิ์การเข้าถึง แทนที่จะปล่อยให้คำขอผ่านไป ช่วยให้การเปิดตัวแอป จำกัดการเข้าถึงลูกค้า ปกป้องเครื่องมือภายใน และควบคุมการใช้งานตามขอบเขตองค์กรเป็นเรื่องง่ายขึ้น โดยไม่ต้องผลักภาระการตัดสินใจทั้งหมดไปยังโค้ดของแอปพลิเคชันของคุณ

ดู เอกสารการควบคุมการเข้าถึงในระดับแอป สำหรับขั้นตอนการตั้งค่าฉบับเต็ม

นโยบายการหมดอายุรหัสผ่าน

Console ตอนนี้รองรับการตั้งค่าอายุรหัสผ่านของผู้เช่าได้ที่ Security > Password policy

แอดมินสามารถเปิดใช้การหมดอายุของรหัสผ่าน กำหนดจำนวนวันที่รหัสผ่านจะคงอยู่ได้ และหมดอายุรหัสผ่านของผู้ใช้รายบุคคลได้จากหน้า ข้อมูลผู้ใช้ เมื่อรหัสผ่านหมดอายุ ผู้ใช้จะต้องรีเซ็ตรหัสผ่านผ่านวิธีการกู้คืนที่กำหนดไว้ก่อนจึงจะสามารถลงชื่อเข้าใช้ด้วยรหัสผ่านต่อได้

SSO และการลงชื่อเข้าใช้ด้วย passkey จะไม่ได้รับผลกระทบ ผู้ใช้ที่มีอยู่ซึ่งยังไม่มีการบันทึกเวลาที่เปลี่ยนรหัสผ่าน Logto จะกำหนด anchor ในเวลาที่นโยบายนี้เปิดใช้งาน เพื่อให้ได้ช่วงเวลามีผลเต็ม ไม่หมดอายุทันที

Account Center ได้เครื่องมือบริหารสิทธิ์ตัวเองมากขึ้น

Account Center พัฒนาต่อเนื่องเพื่อเป็นศูนย์จัดการตัวตนแบบ self-service สำหรับผู้ใช้ปลายทาง

เวอร์ชันนี้เพิ่มการจัดการเซสชัน ตรวจสอบแอปพลิเคชันภายนอกที่เชื่อมต่อ จัดการโปรไฟล์ อัปโหลด avatar อัปโหลด avatar ระหว่างสมัครสมาชิกผ่าน collect-profile ควบคุม passkey อย่างอิสระ และตัวเลือกสำหรับผู้ใช้สำหรับการแจ้งเตือนลงชื่อเข้าใช้ด้วย passkey

หน้าโปรไฟล์ของ Account Center, ฟิลด์โปรไฟล์ที่กำหนดเองขณะสมัคร และ endpoint อัปโหลด avatar ได้รับการเปิดใช้งานออกจาก dev feature gate แล้วด้วย

มีการแก้ไขสำคัญอีกหลายจุด ได้แก่

  • ธีม แพลตฟอร์ม และสีแบรนด์ถูกนำมาใช้ก่อน hydration เพื่อลดอาการวูบวาบภาพ
  • Step-up verification จำกัดการใช้งานกับบันทึกการตรวจสอบสิทธิ์ของผู้ใช้เท่านั้น
  • ผูกบัญชีโซเชียลได้โดยไม่ต้องยืนยันรหัสผ่าน อีเมล หรือโทรศัพท์ในกรณีที่ผู้ใช้ไม่มีวิธีการยืนยันแบบเดิม
  • ตอนนี้การแก้ไขชื่อผู้ใช้ใน Console จะนำไปที่ Account Center เพื่อให้สามารถทำขั้นตอนการตรวจสอบที่ต้องการให้สมบูรณ์

นโยบายชื่อผู้ใช้และรหัสยืนยัน

ตอนนี้สามารถตั้งค่ากฎชื่อผู้ใช้ในระดับ tenant ได้ที่ Console > Sign-in experience > Sign-up and sign-in > Advanced options

นโยบายครอบคลุมความไวต่อเคส ความยาวที่อนุญาต และชนิดอักขระที่อนุญาต ซึ่งจะถูกบังคับใช้ในทุกจุดที่ผู้ใช้ปลายทางเขียนชื่อผู้ใช้ รวมถึงสมัครสมาชิก เติมข้อมูลโปรไฟล์ Account Center Account API และ /me

การเปลี่ยนเป็นชื่อผู้ใช้ case-insensitive มีการป้องกัน Logto จะตรวจสอบชื่อผู้ใช้ซ้ำแบบต่างเคส แล้วบล็อกการเปลี่ยนนโยบายจนกว่าจะแก้ความขัดแย้งเสร็จ ค่า preferred_username ใน OIDC จะ fallback ไปที่ username ถ้า profile.preferredUsername ไม่ได้ตั้งไว้แล้ว

การควบคุมรหัสยืนยันก็ถูกย้ายเข้า Console Security Settings เช่นกัน แอดมินสามารถตั้งระยะเวลาหมดอายุรหัสและจำนวนครั้งที่พยายามได้

การส่งข้อความที่ปลอดภัยยิ่งขึ้น

ตอนนี้ Logto ใช้อัตราขีดจำกัดการส่งต่อผู้รับแต่ละรายในระดับระบบ สำหรับอีเมล/SMS ยืนยันตัวตนและเส้นทางส่งคำเชิญ รวมถึง Experience, MFA, Account API, Management API, /me, คำเชิญองค์กร และ API ปฏิสัมพันธ์เวอร์ชันเก่า

เมื่อการส่งถูกจำกัด Logto จะส่งเหตุการณ์ webhook Message.RateLimited ซึ่งสามารถเลือกได้ใน Console webhook setting แล้ว

การส่งรหัสยืนยันไปยังผู้รับที่ไม่รู้จักจะไม่ถูกกระตุ้นเมื่อปิดการลงทะเบียนด้วย เพื่อลดความเสี่ยงการสแกนบัญชี

JWT customizer และการปรับปรุง API

สำหรับ organization API resource tokens ตัวปรับแต่ง JWT ของ access token จะได้ข้อมูล context.organization ซึ่งมี id, name, description และ customData ขององค์กรเป้าหมาย

ทำให้เพิ่ม claim ตามองค์กรได้ง่ายกว่าเดิมโดยไม่ฝังทุก mapping ในทุก token

ยังมีการปรับปรุง API เพิ่มเติมอีก เช่น:

  • POST /api/applications/:applicationId/roles กลายเป็น idempotent แล้ว ID ที่มีอยู่จะถูกข้าม ไม่คืน 422 application.role_exists
  • endpoint นี้จะคืนค่า 201 พร้อม { roleIds, addedRoleIds } ตามแบบ API มอบหมายบทบาทของผู้ใช้
  • การสร้างบทบาทองค์กรพร้อม scope แรกจะเป็นธุรกรรม หาก scope id ไม่ถูกต้อง จะไม่ทิ้งบทบาทค้างคาไว้

เสริมความแข็งแกร่งด้านความปลอดภัยและโปรโตคอล

เวอร์ชันนี้มาพร้อมการแก้ไขเรื่องโปรโตคอลและความปลอดภัยที่มุ่งเป้า ได้แก่

  • SAML IdP auto-submit form จะ escape ค่าแอตทริบิวต์ HTML และปฏิเสธ action URL ที่ไม่ใช่ HTTP(S)
  • อัปเกรด samlify เป็น ^2.13.0 เพื่อ escape XML ใน SAML assertions ที่สร้างได้ดีขึ้น
  • การยืนยัน TOTP MFA ปฏิเสธโค้ดที่ใช้ซ้ำจาก counter เดิมหรือเก่ากว่า
  • ร่างคำขอ OIDC ที่มี null byte จะคืน 400 invalid_request
  • payload บันทึก audit จะตัด null byte ทิ้งก่อนบันทึก
  • Blocklist email subaddress ไม่สร้าง regular expression จากข้อมูลผู้ใช้
  • Logto Tunnel ป้องกันการอ่านไฟล์ static นอกเส้นทางที่กำหนดใน experience

ยังแก้ไขความเข้ากันได้และ storage เช่น Safari เก่าและ iOS 15 จะไม่แครชตอนเริ่มต้นเพราะ regex lookbehind, ตัวเชื่อมต่อ OIDC ชนิด enterprise สามารถดึงการตั้งค่า discovery จากผู้ให้บริการที่ปฏิเสธ negotiation JSON-only response ได้ และการขนส่ง asset UI จาก Azure Blob จะแมปเป็น storage download error ที่ retry ได้เมื่อถึงจุดล้มเหลว

ตัวเชื่อมต่อใหม่และปรับปรุง

เวอร์ชันนี้เพิ่มและปรับปรุงความสามารถเกี่ยวกับ connector เช่น:

  • เพิ่ม SMTP2GO สำหรับส่งอีเมลยืนยันธุรกรรมผ่าน SMTP2GO send API
  • ตัวเชื่อมต่อ QQ สำหรับยืนยันตัวตนโซเชียลพร้อมจัดเก็บ redirect URI
  • อัปเกรด SAML connector ให้รองรับ samlify และ stricter type
  • Connector Kit ส่งออกยูทิลิตี้แยก/pad กล่องจดหมาย SMTP ใช้ซ้ำกับ MailJunky

สำหรับผู้ใช้ที่โฮสต์เอง

จำเป็นต้องเปลี่ยนแปลงฐานข้อมูลสำหรับ v1.41.0 โดยเวอร์ชันนี้ส่งสคีมาสำหรับหมดอายุรหัสผ่าน นโยบายชื่อผู้ใช้ นโยบายรหัสยืนยัน ดัชนีข้อความ Account Center defaults และดัชนี service-log

หลังอัปเกรดแล้วให้รันคำสั่งปรับฐานข้อมูลก่อนเปิดใช้งานเวอร์ชันใหม่ ดู คู่มืออัปเกรด สำหรับรายละเอียด

ตัวแปรแวดล้อม CASE_SENSITIVE_USERNAME เลิกใช้แล้ว ยังคง override ได้ใน runtime แต่ความไวเคสของชื่อผู้ใช้ควรตั้งค่าตาม tenant ผ่านนโยบายชื่อผู้ใช้ใหม่ ตัวแปรนี้จะถูกลบออกในเวอร์ชันหลักถัดไป

เริ่มต้นใช้งาน

พร้อมอัปเกรดแล้วหรือยัง? ดู คู่มืออัปเกรด สำหรับขั้นตอนอย่างละเอียด

ดูการเปลี่ยนแปลงทั้งหมดใน GitHub release page

มีคำถามหรือข้อเสนอแนะ? มาร่วมพูดคุยกับพวกเราได้ที่ Discord หรือแจ้งปัญหาที่ GitHub