ระบบนิเวศโอเพนซอร์สของภาษา Rust ได้ต้อนรับเฟรมเวิร์กการยืนยันตัวตนใหม่ที่เรียกว่า Torii ซึ่งออกแบบมาเพื่อให้นักพัฒนามีอำนาจควบคุมข้อมูลผู้ใช้อย่างสมบูรณ์ อย่างไรก็ตาม การเปิดตัวนี้ได้จุดประเด็นถกเถียงในวงกว้างระหว่างนักพัฒนาเกี่ยวกับข้อดีของระบบยืนยันตัวตนแบบเซลฟ์โฮสต์เทียบกับโซลูชันของบุคคลที่สามที่เป็นที่นิยม เช่น Auth0, Cognito และ WorkOS
อำนาจควบคุมข้อมูลกับความสะดวกสบาย
Torii วางตำแหน่งตัวเองเป็นโซลูชันสำหรับนักพัฒนาที่ต้องการรักษาความเป็นเจ้าของข้อมูลการยืนยันตัวตนของผู้ใช้อย่างเต็มที่แทนที่จะพึ่งพาบริการที่โฮสต์บนคลาวด์ แนวคิดนี้ได้รับการตอบรับจากนักพัฒนาบางกลุ่ม ในขณะที่กลุ่มอื่นตั้งคำถามถึงความเป็นไปได้ในทางปฏิบัติ การสนทนาในชุมชนเผยให้เห็นความแตกต่างอย่างมีนัยสำคัญระหว่างผู้ที่ให้คุณค่ากับอำนาจควบคุมข้อมูลและผู้ที่ชอบความสะดวกสบายของผู้ให้บริการยืนยันตัวตนที่มีอยู่แล้ว
ผมไม่แน่ใจว่าความเป็นเจ้าของข้อมูลคือสิ่งที่แอปพลิเคชันส่วนใหญ่ต้องการสำหรับข้อมูลอันตรายประเภทนี้ ซึ่งเป็นเหตุผลว่าทำไม Cognito และ Auth0 จึงเป็นที่นิยมมาก
ความคิดเห็นนี้สะท้อนความตึงเครียดที่เป็นแก่นของการถกเถียง ในขณะที่ Torii เสนอให้นักพัฒนาสามารถเก็บข้อมูลผู้ใช้ไว้ที่ใดก็ได้ตามที่พวกเขาเลือก องค์กรจำนวนมากเลือกที่จะมอบหมายการยืนยันตัวตนให้กับผู้ให้บริการเฉพาะทางเพื่อลดความเสี่ยงด้านความปลอดภัยและภาระด้านการปฏิบัติตามกฎระเบียบ
คุณสมบัติของ Torii:
- สถาปัตยกรรมแบบพลักอิน
- รองรับฐานข้อมูล: SQLite, PostgreSQL, MySQL
- วิธีการยืนยันตัวตน: Passkey, OAuth2/OIDC
- อธิปไตยข้อมูลอย่างสมบูรณ์ (ข้อมูลผู้ใช้ถูกจัดเก็บในที่ที่คุณเลือก)
ข้อกังวลด้านความปลอดภัยและการแลกเปลี่ยน
ความปลอดภัยกลายเป็นประเด็นสำคัญในการตอบสนองของชุมชนต่อ Torii นักพัฒนาหลายคนชี้ให้เห็นว่าการยืนยันตัวตนเป็นพื้นที่ที่มีความอ่อนไหวเป็นพิเศษซึ่งข้อผิดพลาดอาจมีผลร้ายแรงตามมา เอกสารของโปรเจกต์เองก็ยอมรับความจริงนี้ โดยระบุว่ายังไม่ได้ผ่านการตรวจสอบความปลอดภัยและไม่ควรใช้ในสภาพแวดล้อมการผลิต
ผู้วิจารณ์โซลูชันแบบโฮสต์ได้เน้นย้ำถึงการละเมิดความปลอดภัยล่าสุดในบริษัทอย่าง Okta (ซึ่งเป็นเจ้าของ Auth0) ซึ่งแนะนำว่าแม้แต่ผู้ให้บริการที่มีชื่อเสียงก็ไม่มีภูมิคุ้มกันต่อปัญหาความปลอดภัย ในขณะเดียวกัน ผู้สนับสนุนบริการยืนยันตัวตนของบุคคลที่สามโต้แย้งว่าผู้ให้บริการเฉพาะทางมักมีทรัพยากรที่ทุ่มเทให้กับความปลอดภัยมากกว่าทีมพัฒนาแต่ละทีม
การจัดสรรทรัพยากรและจุดโฟกัส
สำหรับนักพัฒนาหลายคน การตัดสินใจระหว่างการยืนยันตัวตนแบบเซลฟ์โฮสต์และบุคคลที่สามขึ้นอยู่กับการจัดสรรทรัพยากร การรักษาระบบยืนยันตัวตนที่แข็งแกร่งต้องการความสนใจและความเชี่ยวชาญอย่างต่อเนื่องซึ่งทีมขนาดเล็กอาจไม่มี
ผู้แสดงความคิดเห็นหลายคนสังเกตว่าสตาร์ทอัพและบริษัทขนาดเล็กมักเลือกบริการเช่น Auth0 หรือ Cognito ไม่ใช่เพราะพวกเขาไม่สามารถสร้างระบบยืนยันตัวตนเองได้ แต่เพราะพวกเขาต้องการมุ่งเน้นทรัพยากรที่มีอยู่อย่างจำกัดไปที่คุณสมบัติหลักของผลิตภัณฑ์ การยืนยันตัวตน แม้จะมีความสำคัญ แต่ถูกมองว่าเป็นโครงสร้างพื้นฐานมากกว่าปัจจัยที่สร้างความแตกต่างสำหรับแอปพลิเคชันส่วนใหญ่
ข้อกำหนดขององค์กรและการบูรณาการ
ข้อกำหนดขององค์กรปรากฏเป็นอีกหนึ่งข้อพิจารณาสำคัญในการสนทนา แอปพลิเคชัน B2B มักต้องรองรับสถานการณ์การยืนยันตัวตนที่ซับซ้อน รวมถึง SAML, SCIM และผู้ให้บริการตัวตนต่างๆ ข้อกำหนดเหล่านี้สามารถทำให้การยืนยันตัวตนเป็นเรื่องที่ท้าทายเป็นพิเศษในการนำไปใช้และบำรุงรักษาภายในองค์กร
นักพัฒนาบางคนได้แบ่งปันประสบการณ์เกี่ยวกับความยากลำบากในการรองรับความต้องการด้านการยืนยันตัวตนขององค์กร โดยเฉพาะอย่างยิ่งเกี่ยวกับการกำหนดค่าผู้ให้บริการตัวตนและการแก้ไขปัญหา ความท้าทายเหล่านี้ช่วยอธิบายว่าทำไมบริษัทจำนวนมากจึงหันไปใช้ผู้ให้บริการเฉพาะทางแม้จะมีค่าใช้จ่ายที่สูงขึ้นและอาจมีการล็อกอินก็ตาม
โซลูชันการยืนยันตัวตนยอดนิยมที่กล่าวถึง:
- Auth0 (เป็นของ Okta)
- AWS Cognito
- WorkOS
- Keycloak (ทางเลือกแบบโอเพนซอร์ส)
ความเป็นผู้ใหญ่ของเฟรมเวิร์กและระบบนิเวศ
ในฐานะโปรเจกต์ใหม่ Torii เผชิญกับความท้าทายในการสร้างตัวเองในระบบนิเวศที่มีเฟรมเวิร์กการยืนยันตัวตนที่เติบโตเต็มที่อยู่แล้วสำหรับภาษาอื่นๆ สมาชิกในชุมชนชี้ให้เห็นถึงโซลูชันที่มีอยู่แล้วเช่น Passport.js สำหรับ Node.js และ Devise สำหรับ Ruby on Rails โดยสังเกตว่าภาษา Rust ยังขาดเฟรมเวิร์กการยืนยันตัวตนที่เติบโตเต็มที่ในระดับเดียวกัน
ช่องว่างในระบบนิเวศของ Rust นี้ทำให้ Torii มีศักยภาพที่มีคุณค่า โดยมีผู้แสดงความคิดเห็นรายหนึ่งสังเกตว่าพวกเขาได้คิดเกี่ยวกับว่าสิ่งเช่นนี้จำเป็นมากแค่ไหนใน Rust เพียงหนึ่งสัปดาห์ก่อนหน้านี้ สถาปัตยกรรมแบบปลั๊กอินของเฟรมเวิร์กซึ่งรองรับคุณสมบัติต่างๆ เช่น การเข้าสู่ระบบแบบไร้รหัสผ่าน, OAuth แบบโซเชียล และ passkeys มีเป้าหมายเพื่อให้ความยืดหยุ่นที่นักพัฒนาต้องการในขณะที่ยังคงรักษาความเป็นเจ้าของข้อมูล
การแนะนำ Torii เน้นย้ำถึงความตึงเครียดที่มีอยู่อย่างต่อเนื่องระหว่างความสะดวกสบายและการควบคุมในการพัฒนาแอปพลิเคชันสมัยใหม่ ในขณะที่ผู้ให้บริการยืนยันตัวตนของบุคคลที่สามยังคงครองตลาด เครื่องมือเช่น Torii เสนอเส้นทางทางเลือกสำหรับนักพัฒนาที่ให้ความสำคัญกับอำนาจควบคุมข้อมูลและเต็มใจที่จะรับผิดชอบที่เกี่ยวข้อง
อ้างอิง: Torii: A Powerful Authentication Framework for Rust Applications