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