Firebase Admin SDK ช่วยให้คุณผสานรวมเซิร์ฟเวอร์ของคุณเองกับ Firebase Authenticationได้ คุณสามารถใช้ Firebase Admin SDK เพื่อจัดการผู้ใช้หรือจัดการโทเค็นการตรวจสอบสิทธิ์ เหตุผลที่คุณควรทำเช่นนี้มีดังนี้
การจัดการผู้ใช้
บางครั้งคุณอาจไม่สะดวกที่จะไปที่คอนโซลFirebaseเพื่อจัดการผู้ใช้Firebase API การจัดการผู้ใช้ระดับผู้ดูแลระบบจะให้สิทธิ์เข้าถึงแบบเป็นโปรแกรมแก่ผู้ใช้เหล่านั้น และยังทําสิ่งต่างๆ ที่Firebaseคอนโซลทำไม่ได้ เช่น ดึงข้อมูลทั้งหมดของผู้ใช้ รวมถึงเปลี่ยนรหัสผ่าน อีเมล หรือหมายเลขโทรศัพท์ของผู้ใช้
การตรวจสอบสิทธิ์ที่กำหนดเอง
คุณสามารถผสานรวมระบบผู้ใช้ภายนอกกับ Firebase ได้ ตัวอย่างเช่น คุณอาจมีฐานข้อมูลผู้ใช้อยู่แล้ว หรือต้องการผสานรวมกับผู้ให้บริการข้อมูลประจำตัวของบุคคลที่สามที่ Firebase Authentication ไม่รองรับโดยกำเนิด
ซึ่งทำได้โดยสร้างโทเค็นที่กำหนดเองที่มีการอ้างสิทธิ์ที่กำหนดเองซึ่งระบุผู้ใช้ จากนั้นจะใช้โทเค็นที่กำหนดเองเหล่านี้เพื่อลงชื่อเข้าใช้บริการ Firebase Authentication ในแอปพลิเคชันไคลเอ็นต์และรับข้อมูลระบุตัวตนตามที่ระบุไว้ในการอ้างสิทธิ์ของโทเค็นได้ จากนั้นระบบจะใช้ข้อมูลประจำตัวนี้เมื่อเข้าถึงFirebaseบริการอื่นๆ เช่น Cloud Storage
การยืนยันตัวตน
Firebase Authentication ส่วนใหญ่ใช้เพื่อระบุผู้ใช้แอปของคุณเพื่อจํากัดการเข้าถึงบริการอื่นๆ เช่น Cloud Storage นอกจากนี้ คุณยังใช้บริการเพื่อระบุผู้ใช้เหล่านี้ในเซิร์ฟเวอร์ของคุณเองได้ด้วย ซึ่งจะช่วยให้คุณดำเนินการตามตรรกะฝั่งเซิร์ฟเวอร์ได้อย่างปลอดภัยในนามของผู้ใช้ที่ลงชื่อเข้าใช้ด้วย Firebase Authentication
โดยคุณสามารถดึงข้อมูลโทเค็นระบุตัวตนจากแอปพลิเคชันไคลเอ็นต์ที่ลงชื่อเข้าใช้ด้วย Firebase Authentication และใส่โทเค็นนั้นในคำขอไปยังเซิร์ฟเวอร์ จากนั้นเซิร์ฟเวอร์จะยืนยันโทเค็นระบุตัวตนและดึงข้อมูลการอ้างสิทธิ์ที่ระบุตัวตนผู้ใช้ (รวมถึง uid
, ผู้ให้บริการข้อมูลประจำตัวที่ผู้ใช้เข้าสู่ระบบด้วย ฯลฯ) จากนั้นเซิร์ฟเวอร์ของคุณจะใช้ข้อมูลระบุตัวตนนี้เพื่อดําเนินการในนามของผู้ใช้
Firebase Admin SDK มีวิธีการสําหรับดําเนินการตรวจสอบสิทธิ์ข้างต้นโดยให้คุณจัดการผู้ใช้ สร้างโทเค็นที่กําหนดเอง และยืนยันโทเค็นระบุตัวตน
การอ้างสิทธิ์ของผู้ใช้ที่กําหนดเอง
ในบางกรณี คุณอาจต้องการใช้การควบคุมการเข้าถึงแบบละเอียดสำหรับผู้ใช้ที่ลงชื่อเข้าใช้ด้วยFirebaseผู้ให้บริการตรวจสอบสิทธิ์ที่รองรับ เช่น อีเมล/รหัสผ่าน, Google, Facebook, โทรศัพท์ ฯลฯ อยู่แล้ว การใช้การอ้างสิทธิ์ของผู้ใช้ที่กำหนดเองร่วมกับกฎการรักษาความปลอดภัยของแอปพลิเคชันจะทำให้เกิดความสามารถนี้ เช่น ผู้ใช้ที่ลงชื่อเข้าใช้ด้วยFirebase Authenticationผู้ให้บริการอีเมลและรหัสผ่านสามารถกำหนดการควบคุมการเข้าถึงได้โดยใช้การอ้างสิทธิ์ที่กำหนดเอง
การจัดการผู้ใช้
Firebase Admin SDK มี API สำหรับจัดการผู้ใช้ Firebase ที่มีสิทธิ์ที่สูงขึ้น API การจัดการผู้ใช้ที่ดูแลระบบช่วยให้คุณเรียกข้อมูล สร้าง อัปเดต และลบผู้ใช้แบบเป็นโปรแกรมได้โดยไม่ต้องใช้ข้อมูลเข้าสู่ระบบที่มีอยู่ของผู้ใช้ และไม่ต้องกังวลเกี่ยวกับการจำกัดอัตราการส่งข้อมูลฝั่งไคลเอ็นต์
จัดการผู้ใช้การสร้างโทเค็นที่กำหนดเอง
การใช้หลักในการสร้างโทเค็นที่กำหนดเองคือการอนุญาตให้ผู้ใช้ตรวจสอบสิทธิ์กับกลไกการตรวจสอบสิทธิ์ภายนอกหรือเดิม ซึ่งอาจเป็นบริการที่คุณควบคุม เช่น เซิร์ฟเวอร์ LDAP หรือผู้ให้บริการ OAuth ของบุคคลที่สามที่Firebaseไม่ได้รองรับโดยกำเนิด เช่น Instagram หรือ LinkedIn
Firebase Admin SDK มีวิธีการสร้างโทเค็นที่กำหนดเองในตัว นอกจากนี้ คุณยังสร้างโทเค็นที่กำหนดเองเป็นภาษาใดก็ได้โดยใช้ไลบรารี JWT ของบุคคลที่สามแบบเป็นโปรแกรม
เซิร์ฟเวอร์ควรสร้างโทเค็นที่กําหนดเองซึ่งมีตัวระบุที่ไม่ซ้ำกัน (uid
) และส่งโทเค็นนั้นไปยังแอปไคลเอ็นต์ ซึ่งจะใช้โทเค็นดังกล่าวเพื่อลงชื่อเข้าใช้Firebase ดูตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการสร้างโทเค็นที่กำหนดเองได้ที่หัวข้อสร้างโทเค็นที่กำหนดเอง
การยืนยันโทเค็นบัตรประจำตัว
หากแอปไคลเอ็นต์ Firebase สื่อสารกับเซิร์ฟเวอร์แบ็กเอนด์ คุณอาจต้องระบุผู้ใช้ที่ลงชื่อเข้าใช้อยู่ในเซิร์ฟเวอร์เพื่อให้สามารถดำเนินการตามตรรกะฝั่งเซิร์ฟเวอร์ในนามของผู้ใช้ คุณดำเนินการนี้ได้อย่างปลอดภัยโดยใช้ โทเค็นระบุตัวตน ซึ่ง Firebase จะสร้างขึ้นเมื่อผู้ใช้ลงชื่อเข้าใช้แอป โทเค็นระบุตัวตนเป็นไปตามข้อกำหนด OpenID Connect และมีข้อมูลเพื่อระบุตัวตนผู้ใช้ รวมถึงข้อมูลโปรไฟล์และข้อมูลอื่นๆ ที่เกี่ยวข้องกับการตรวจสอบสิทธิ์Firebase คุณสามารถส่ง ยืนยัน และตรวจสอบโทเค็นเหล่านี้จากแบ็กเอนด์ของคุณเอง ซึ่งจะช่วยให้คุณระบุผู้ใช้ที่ลงชื่อเข้าใช้อยู่ในปัจจุบันได้อย่างปลอดภัย และอนุญาตให้ผู้ใช้เข้าถึงทรัพยากรแบ็กเอนด์ของคุณเอง
Firebase Admin SDK มีวิธีการในตัวสําหรับการยืนยันโทเค็นประจําตัว นอกจากนี้ คุณยังยืนยันโทเค็นระบุตัวตนในภาษาใดก็ได้ผ่านโปรแกรมโดยใช้ไลบรารี JWT ของบุคคลที่สาม ดูรายละเอียดเพิ่มเติมและตัวอย่างโค้ดเกี่ยวกับกระบวนการยืนยันโทเค็นระบุตัวตนได้ที่หัวข้อยืนยันโทเค็นระบุตัวตน
การอ้างสิทธิ์ของผู้ใช้ที่กําหนดเอง
Firebase Admin SDK ช่วยให้คุณกำหนดแอตทริบิวต์ที่กำหนดเองในบัญชีผู้ใช้ได้ เมื่อใช้การอ้างสิทธิ์ของผู้ใช้ที่กําหนดเอง คุณสามารถให้สิทธิ์เข้าถึง (บทบาท) ระดับต่างๆ แก่ผู้ใช้ได้ ซึ่งระบบจะบังคับใช้ในกฎการรักษาความปลอดภัยของแอปพลิเคชัน
หลังจากแก้ไขการอ้างสิทธิ์ที่กำหนดเองในผู้ใช้ผ่าน Firebase Admin SDK แล้ว ระบบจะนำไปเผยแพร่ไปยังผู้ใช้ที่ตรวจสอบสิทธิ์แล้วฝั่งไคลเอ็นต์ผ่านโทเค็นระบุตัวตน โทเค็นระบุตัวตนเป็นกลไกที่เชื่อถือได้ในการส่งการอ้างสิทธิ์ที่กําหนดเองเหล่านี้ และการเข้าถึงที่ตรวจสอบสิทธิ์ทั้งหมดต้องตรวจสอบโทเค็นระบุตัวตนก่อนประมวลผลคําขอที่เกี่ยวข้อง
ควบคุมการเข้าถึงด้วยการอ้างสิทธิ์ที่กำหนดเอง