Cloudflare Workers (ใช้คำว่า Workers สั้น ๆ ในเนื้อหาต่อไปนี้) มอบสภาพแวดล้อมการดำเนินงานแบบเซิร์ฟเวอร์เลส ที่ช่วยให้คุณสร้างแอปพลิเคชันใหม่ หรือเสริมแอปพลิเคชันที่มีอยู่ได้โดยไม่ต้องกำหนดค่าหรือดูแลรักษาโครงสร้างพื้นฐาน
ด้วย Workers คุณสามารถสร้างแอปพลิเคชันเซิร์ฟเวอร์เลสของคุณและปรับใช้ได้ทันทีทั่วโลกเพื่อประสิทธิภาพที่ยอดเยี่ยม ความน่าเชื่อถือ และขนาด Workers ไม่เพียงแต่มอบประสิทธิภาพที่ยอดเยี่ยมแต่ยังให้แผนฟรีที่ให้เยอะมาก ๆ และแผนเสียค่าบริการที่ราคาไม่แพงอีกด้วย ไม่ว่าคุณจะเป็นนักพัฒนารายบุคคลหรือทีมขนาดใหญ่ Workers ช่วยให้คุณพัฒนาและส่งมอบผลิตภัณฑ์ได้อย่างรวดเร็วในขณะเดียวกันลดภาระในการดำเนินงานลงได้
Workers สามารถเข้าถึงได้โดยสาธารณะตามค่าเริ่มต้น จึงจำเป็นต้องมีมาตรการป้องกันเพื่อป้องกันการโจมตีและการใช้งานที่ไม่เหมาะสม Logto นำเสนอบริการระบุตัวตนที่ครบวงจร ใช้งานง่ายและมีขนาดใหญ่ที่สามารถปกป้อง Workers และบริการเว็บอื่น ๆ ทั้งหมดของคุณ
บทความนี้เจาะลึกกระบวนการรักษาความปลอดภัยให้กับ Workers ของคุณโดยใช้ Logto
สร้างตัวอย่าง Workers#
มาก่อสร้างโปรเจกต์ตัวอย่าง Workers ด้วย Hono ในเครื่องท้องถิ่นกัน
เราใช้คำสั่ง CLI ของ Wrangler เพื่อปรับใช้ตัวอย่างไปยัง Cloudflare ทำให้เราสามารถเข้าถึงเส้นทางได้

ป้องกัน API ของ Workers#
เพื่อเปรียบเทียบ API ที่สามารถเข้าถึงได้โดยสาธารณะและ API ที่ได้รับการป้องกัน เราเพิ่ม API GET /auth/greet ซึ่งต้องการช่วงที่เฉพาะเจาะจงในการเข้าถึง
เราไม่สามารถเข้าถึง API ที่สอดคล้องกันได้หากไม่มีสิทธิ์ที่ถูกต้อง

เพื่อจัดการการเข้าถึง API ของ Workers อย่างถูกต้อง เราแนะนำ Logto
ตั้งค่า Logto#
ลงทะเบียนบัญชีหากคุณยังไม่มี
เราใช้ Machine-to-machine (M2M) เป็นตัวอย่างในการเข้าถึง API ของ Workers ที่ได้รับการป้องกันเพราะใช้งานง่าย หากคุณต้องการให้ผู้ใช้เว็บแอปของคุณเข้าสู่ระบบ การตั้งค่าจะคล้ายกันแต่คุณควรใช้บทบาท “User” แทนบทบาท “Machine-to-machine”
- เข้าสู่ Logto Admin Console และไปยังแท็บ “API resource” สร้างทรัพยากร API ชื่อ “Workers sample API” พร้อมตัวบ่งชี้ทรัพยากรเป็น
https://sample.workers.dev/ และสร้างสิทธิ์ greet:visitor สำหรับทรัพยากร API นี้ด้วย

- สร้างบทบาท “Workers admin role” ซึ่งเป็นบทบาท “Machine-to-machine” และกำหนดช่วง
greet:visitor ให้กับบทบาทนี้

- สร้างแอป M2M และกำหนดบทบาท “Workers admin role” ให้กับแอปนี้

อัปเดตตัวตรวจสอบสิทธิ์ Workers#
เนื่องจาก Logto ใช้ JWT access token ภายใต้การจัดการ เราจำเป็นต้องฝังตรรกะการตรวจสอบ JWT ใน Workers
ในเมื่อ JWT access token ถูกสร้างโดย Logto เราจึงจำเป็นต้อง:
- รับกุญแจสาธารณะที่สอดคล้องกันเพื่อยืนยันลายเซ็น
- ยืนยันผู้บริโภคของ JWT access token ว่าเป็น Workers APIs
ค่าคงที่เหล่านี้สามารถกำหนดค่าในไฟล์ wrangler.toml [1] และจะถูกใช้เป็นตัวแปรสิ่งแวดล้อมของ Workers คุณยังสามารถจัดการตัวแปรสิ่งแวดล้อมด้วยตนเองในแดชบอร์ด Cloudflare ได้อีกด้วย
หลังจากปรับใช้โครงการ Workers ไปยัง Cloudflare แล้ว เราสามารถทดสอบได้ว่า API ได้รับการป้องกันอย่างสำเร็จหรือไม่
- รับ access token


- ขอ API
GET /auth/greet ของ Workers

บทสรุป#
ด้วยคู่มือแบบขั้นตอนต่อขั้นตอนในบทความนี้ คุณควรจะสามารถใช้ Logto เพื่อสร้างการป้องกันสำหรับ API ของ Workers ของคุณได้
ในบทความนี้เราได้ใช้ Wrangler CLI สำหรับการพัฒนาและปรับใช้โครงการ Workers ในเครื่องท้องถิ่น Cloudflare ยังมี Workers APIs ที่แข็งแกร่งและหลากหลายเพื่อช่วยในการปรับใช้และการจัดการ
ลองพิจารณาพัฒนาแอปพลิเคชัน SaaS ดู API ของ Cloudflare จะช่วยให้คุณสามารถปรับใช้ Workers พิเศษสำหรับผู้เช่าทุกคนได้อย่างง่ายดาย ในขณะนั้น Logto จะทำให้มั่นใจว่า access tokens จะยังคงเป็นของแต่ละผู้เช่า ซึ่งการควบคุมในลักษณะนี้จะป้องกันการเข้าถึงที่ไม่ได้รับอนุญาตระหว่างผู้เช่า เพิ่มความปลอดภัยและความเป็นส่วนตัวของข้อมูลสำหรับผู้ใช้แอป SaaS ของคุณ
สถาปัตยกรรมที่ปรับตัวและแข็งแกร่งของ Logto สนองตอบต่อความต้องการการยืนยันตัวตนและการอนุญาตที่หลากหลายของแอปพลิเคชันต่าง ๆ ไม่ว่าคุณจะสร้างแพลตฟอร์ม SaaS ที่ซับซ้อนหรือเว็บแอปที่ง่าย Logto ก็มีความยืดหยุ่นและรองรับการขยายได้เพื่อตอบสนองความต้องการเฉพาะของคุณ