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 เมื่อผู้ใช้ลงชื่อเข้าใช้แอป Firebase โทเค็นรหัสเป็นไปตามข้อกำหนด OpenID Connect และมีข้อมูลเพื่อระบุตัวตนผู้ใช้ รวมถึงข้อมูลอื่นๆ เกี่ยวกับโปรไฟล์และการตรวจสอบสิทธิ์ คุณสามารถส่ง ยืนยัน และตรวจสอบโทเค็นเหล่านี้จากแบ็กเอนด์ของคุณเองได้ ซึ่งช่วยให้คุณระบุตัวตนของผู้ใช้ที่ลงชื่อเข้าใช้ในปัจจุบันและให้สิทธิ์เข้าถึงทรัพยากรแบ็กเอนด์ของคุณเองได้อย่างปลอดภัย
Firebase Admin SDK มีวิธีการในตัวสำหรับการยืนยัน โทเค็นรหัส นอกจากนี้ คุณยังยืนยันโทเค็นรหัสผ่านการเขียนโปรแกรมในภาษาใดก็ได้โดยใช้ไลบรารี JWT ของบุคคลที่สาม ดูรายละเอียดเพิ่มเติมและตัวอย่างโค้ดเกี่ยวกับกระบวนการยืนยันโทเค็นรหัสได้ที่ ยืนยันโทเค็นรหัส
การอ้างสิทธิ์ของผู้ใช้ที่กำหนดเอง
Firebase Admin SDK ช่วยให้คุณตั้งค่าแอตทริบิวต์ที่กำหนดเองในบัญชีผู้ใช้ได้ การอ้างสิทธิ์ของผู้ใช้ที่กำหนดเองช่วยให้คุณให้สิทธิ์เข้าถึง (บทบาท) ระดับต่างๆ แก่ผู้ใช้ได้ ซึ่งจะบังคับใช้ในกฎความปลอดภัยของแอปพลิเคชัน
หลังจากแก้ไขการอ้างสิทธิ์ที่กำหนดเองในผู้ใช้ผ่าน Firebase Admin SDK แล้ว ระบบจะ ส่งต่อการอ้างสิทธิ์ไปยังผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ในฝั่งไคลเอ็นต์ผ่านโทเค็นรหัส โทเค็นรหัสเป็นกลไกที่เชื่อถือได้ในการส่ง การอ้างสิทธิ์ที่กำหนดเองเหล่านี้ และการเข้าถึงที่ตรวจสอบสิทธิ์แล้วทั้งหมดต้องตรวจสอบโทเค็นรหัส ก่อนประมวลผลคำขอที่เกี่ยวข้อง
ควบคุมการเข้าถึงด้วยการอ้างสิทธิ์ที่กำหนดเอง