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