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 แล้ว ระบบจะ เผยแพร่การอ้างสิทธิ์ไปยังผู้ใช้ที่ผ่านการตรวจสอบสิทธิ์ในฝั่งไคลเอ็นต์ผ่านโทเค็นรหัส โทเค็นรหัสเป็นกลไกที่เชื่อถือได้สำหรับการส่งการอ้างสิทธิ์ที่กำหนดเองเหล่านี้ และการเข้าถึงทั้งหมดที่ผ่านการตรวจสอบสิทธิ์ต้องตรวจสอบโทเค็นรหัสก่อนที่จะประมวลผลคำขอที่เกี่ยวข้อง
ควบคุมการเข้าถึงด้วยการอ้างสิทธิ์ที่กำหนดเอง