การเปิดเผยข้อมูล : ผมเป็นวิศวกรที่Auth0
มันขึ้นอยู่กับประเด็นสำคัญข้อหนึ่ง ... คุณต้องตัดสินใจว่า:
- คุณต้องการใช้เวลาจำนวนมากโดยตรง (และใช้เงินทางอ้อม) ในการสร้างและ / หรือดูแลผู้ให้บริการเอกลักษณ์และเซิร์ฟเวอร์การอนุญาตของคุณเอง
- หรือคุณต้องการจ่ายเงินโดยตรงและใช้ผู้ให้บริการการรับรองความถูกต้องของบุคคลที่สามเช่น Auth0
ตัวเลือกทั้งสองทำงานได้อย่างสมบูรณ์แบบจากมุมมองของข้อกำหนดการทำงานของคุณ ด้วยการพัฒนาที่กำหนดเองคุณจะสามารถควบคุมฟังก์ชั่นที่คุณสนับสนุนได้อย่างเต็มที่ดังนั้นฉันจะเน้นส่วนหนึ่งของคำตอบว่า Auth0 สามารถตอบสนองความต้องการที่คุณระบุไว้ได้อย่างไร
อย่างไรก็ตามก่อนที่จะไปสู่สิ่งนั้นไม่ว่าการตัดสินใจของคุณจะเป็นอย่างไรสำหรับการตรวจสอบสิทธิ์คุณควรมุ่งเน้นไปที่ OpenID Connect แทน OAuth2 หลังจะมีผลบังคับใช้มากขึ้นถ้าคุณวางแผนที่จะมี API ในการผสมและไม่เพียง แต่แบ่งเสาหินออกเป็นเว็บแอปพลิเคชันแยกต่างหาก
วิธีการโยกย้ายผู้ใช้ที่มีอยู่ไปยังระบบที่ใช้ Auth0?
คุณสามารถตัดสินใจที่จะใช้ฐานข้อมูลของคุณต่อไปและพึ่งพา Auth0 เพื่อให้สอดคล้องกับโปรโตคอลการรับรองความถูกต้องที่คุณอาจต้องใช้ทั้งหมดหรือคุณสามารถย้ายผู้ใช้ของคุณไปยังฐานข้อมูลที่จัดการ Auth0 และหยุดกังวลเกี่ยวกับวิธีการจัดเก็บและตรวจสอบรหัสผ่าน
หากคุณต้องการใช้ฐานข้อมูลของคุณต่อไปให้ตรวจสอบสิทธิ์ผู้ใช้ด้วยชื่อผู้ใช้และรหัสผ่านโดยใช้ฐานข้อมูลที่กำหนดเอง
แอปพลิเคชันมักใช้ฐานข้อมูลผู้ใช้สำหรับการรับรองความถูกต้อง Auth0 ช่วยให้คุณสามารถเชื่อมต่อกับที่เก็บเหล่านี้ได้อย่างง่ายดายและใช้เป็นผู้ให้บริการข้อมูลประจำตัวในขณะที่รักษาข้อมูลประจำตัวของผู้ใช้และให้คุณสมบัติเพิ่มเติมมากมาย
(เอกสารอ้างอิงถึง MySQL เช่นเดียวกับเอ็นจิ้นฐานข้อมูลอื่น ๆ ที่รองรับ)
ในอีกทางหนึ่งคุณสามารถย้ายข้อมูลประจำตัวของผู้ใช้ไปยังฐานข้อมูล Auth0 ได้อย่างราบรื่นโดยใช้ประโยชน์จากกระบวนการโยกย้ายที่อธิบายไว้ในโยกย้ายผู้ใช้ไปยัง Auth0
Auth0 สนับสนุนการโยกย้ายอัตโนมัติของผู้ใช้ไปยัง Auth0 จากการเชื่อมต่อฐานข้อมูลที่กำหนดเอง ฟีเจอร์นี้จะเพิ่มผู้ใช้ของคุณไปยังฐานข้อมูล Auth0 ครั้งละหนึ่งครั้งในแต่ละครั้งที่เข้าสู่ระบบและหลีกเลี่ยงการขอให้ผู้ใช้รีเซ็ตรหัสผ่านทั้งหมดในเวลาเดียวกัน
คุณยังสามารถสร้างผู้ใช้ทั้งหมดของคุณใน Auth0 ผ่าน Management API ได้หากคุณต้องการให้พวกเขาทั้งหมดเริ่มใช้อัลกอริทึมการแฮชรหัสผ่านของเราพร้อมกัน สิ่งนี้มีผลข้างเคียงที่ทำให้ผู้ใช้ต้องรีเซ็ตรหัสผ่าน
วิธีการใช้การรับรองความถูกต้องสองขั้นตอนแบบกำหนดเอง (คำถามยืนยัน)
ท่อการตรวจสอบการให้บริการโดย Auth0 สามารถปรับแต่งได้อย่างเต็มที่ผ่านการใช้กฎ ซึ่งหมายความว่าแม้ว่าคุณไม่จำเป็นต้องใช้โพรโทคอลใด ๆ ที่เกี่ยวข้องกับโพรโทคอลคุณยังสามารถปรับแต่งรายละเอียดเล็ก ๆ น้อย ๆ ว่าการรับรองความถูกต้องเกิดขึ้นในแอปพลิเคชันของคุณอย่างไร
ซึ่งรวมถึงความเป็นไปได้ที่จะใช้คำถามยืนยันที่มีอยู่ของคุณต่อไปเพื่อทำกระบวนการตรวจสอบสองขั้นตอนที่ผู้ใช้ให้รหัสผ่านเริ่มต้นที่ได้รับการตรวจสอบโดย Auth0 จากนั้นคุณขอข้อมูลเพิ่มเติมจากกฎที่กำหนดเอง (กฎเป็นเพียง Javascript ดังนั้นความเป็นไปได้ไม่มีที่สิ้นสุด)
อย่างไรก็ตามคุณสามารถตัดสินใจที่จะทิ้งคำถามการตรวจสอบและไปที่Auth0 Guardianแทนเพื่อเพิ่มความปลอดภัยของกระบวนการตรวจสอบสิทธิ์
วิธีปรับแต่งรูปลักษณ์ของ UI การรับรองความถูกต้อง
ด้วย Auth0 คุณสามารถมี UI การตรวจสอบความสะอาดในเวลาไม่นานโดยใช้ประโยชน์จากหน้าเข้าสู่ระบบเริ่มต้นหรือเครื่องมือการตรวจสอบเช่นล็อค สิ่งเหล่านี้สนับสนุนการปรับแต่งในระดับหนึ่งและคุณสามารถตัดสินใจที่จะทำ UI ของคุณเองได้เสมอและใช้ประโยชน์จากไลบรารี Auth0 ระดับต่ำกว่า ( Auth0.js ) ที่ไม่มีข้อ จำกัด ในส่วนติดต่อผู้ใช้
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่ง:
จะป้องกันหน้ายินยอมได้อย่างไร
คุณสามารถใช้ Auth0 ทั้งสองเป็นผู้ให้บริการข้อมูลประจำตัวเพื่อการตรวจสอบความถูกต้องและเป็นเซิร์ฟเวอร์การอนุญาต OAuth2 (ปัจจุบันมีให้บริการเฉพาะในสหรัฐอเมริกาเท่านั้น) สำหรับ API ของคุณ
ในฐานะผู้ให้บริการข้อมูลประจำตัวคุณไม่ต้องกังวลเกี่ยวกับหน้าความยินยอมผู้ใช้รับรองความถูกต้องด้วยข้อมูลรับรองของตนที่จัดการโดย Auth0 จากนั้นจะถูกเปลี่ยนเส้นทางไปยังแอปพลิเคชันของคุณ
ใน OAuth2 เป็นสถานการณ์บริการเมื่อเปิดใช้งานความยินยอมแผนที่ถนนจะมีการอนุญาตให้ข้ามหน้าความยินยอมสำหรับบางแอปพลิเคชัน
ในหมายเหตุสุดท้ายดูเหมือนว่าเป็นโครงการที่น่าสนใจและท้าทายมากที่คุณไปถึงที่นั่นดังนั้นขอให้โชคดีอย่างอิสระจากการตัดสินใจครั้งสุดท้ายของคุณ
ฉันได้ทำสิ่งที่คล้ายกันในงานก่อนหน้านี้เมื่อฉันต้องใช้ระบบรับรองความถูกต้องของแอปพลิเคชันรุ่นเก่าอีกครั้ง เราใช้ผู้ให้บริการข้อมูลประจำตัวและเซิร์ฟเวอร์การอนุญาตของเราเองและด้วยความซื่อสัตย์ฉันยังคงรู้สึกว่าเราอาจลืมสิ่งที่จำเป็นจริงๆ
ฉันคิดว่านั่นเป็นปัญหาที่ใหญ่ที่สุดในการรักษาความปลอดภัยของคุณเองมีหลายครั้งที่กำหนดส่งทางลัดและการรักษาความปลอดภัยไม่ใช่เรื่องดีสำหรับการสร้างทางลัด
หากคุณมีคำถามเพิ่มเติมแจ้งให้เราทราบหากคุณคิดว่าฉันอาจมีประโยชน์