ข้อมูลเบื้องต้นเกี่ยวกับ Admin Auth API

Firebase Admin SDK ให้คุณผสานรวมเซิร์ฟเวอร์ของคุณเองกับ Firebase Authentication คุณใช้ Firebase Admin SDK เพื่อจัดการผู้ใช้หรือจัดการโทเค็นการตรวจสอบสิทธิ์ได้ มีเหตุผลหลายประการที่คุณต้องการทำสิ่งนี้:

การจัดการผู้ใช้

ไม่สะดวกเสมอไปที่จะต้องไปที่คอนโซล Firebase เพื่อจัดการผู้ใช้ Firebase ของคุณ API การจัดการผู้ใช้ของผู้ดูแลระบบให้การเข้าถึงแบบเป็นโปรแกรมแก่ผู้ใช้กลุ่มเดียวกัน มันยังช่วยให้คุณทำสิ่งต่าง ๆ ที่คอนโซล Firebase ไม่สามารถทำได้ เช่น ดึงข้อมูลทั้งหมดของผู้ใช้และเปลี่ยนรหัสผ่าน ที่อยู่อีเมล หรือหมายเลขโทรศัพท์ของผู้ใช้

การรับรองความถูกต้องแบบกำหนดเอง

คุณสามารถรวมระบบผู้ใช้ภายนอกกับ Firebase ตัวอย่างเช่น คุณอาจมีฐานข้อมูลผู้ใช้ที่มีอยู่ก่อนแล้ว หรือคุณอาจต้องการผสานรวมกับผู้ให้บริการข้อมูลประจำตัวบุคคลที่สามที่การตรวจสอบสิทธิ์ Firebase ไม่รองรับโดยกำเนิด

ในการทำเช่นนี้ คุณสามารถสร้างโทเค็นที่กำหนดเองด้วยการอ้างสิทธิ์โดยพลการเพื่อระบุผู้ใช้ โทเค็นที่กำหนดเองเหล่านี้สามารถใช้เพื่อลงชื่อเข้าใช้บริการ Firebase Authentication บนแอปพลิเคชันไคลเอนต์และถือว่าข้อมูลประจำตัวที่อธิบายโดยการอ้างสิทธิ์ของโทเค็น จากนั้นจะใช้ข้อมูลประจำตัวนี้เมื่อเข้าถึงบริการ Firebase อื่นๆ เช่น Cloud Storage

การยืนยันตัวตน

การตรวจสอบสิทธิ์ Firebase ใช้เพื่อระบุผู้ใช้แอปเป็นหลักเพื่อจำกัดการเข้าถึงบริการอื่นๆ เช่น Cloud Storage คุณยังสามารถใช้บริการเพื่อระบุผู้ใช้เหล่านี้บนเซิร์ฟเวอร์ของคุณเอง วิธีนี้ช่วยให้คุณใช้ตรรกะฝั่งเซิร์ฟเวอร์ได้อย่างปลอดภัยในนามของผู้ใช้ที่ลงชื่อเข้าใช้ด้วยการตรวจสอบสิทธิ์ Firebase

ในการดำเนินการนี้ คุณสามารถดึงโทเค็น ID จากแอปพลิเคชันไคลเอนต์ที่ลงชื่อเข้าใช้ด้วย Firebase Authentication และรวมโทเค็นในคำขอไปยังเซิร์ฟเวอร์ของคุณ จากนั้นเซิร์ฟเวอร์ของคุณจะตรวจสอบโทเค็น ID และแยกการอ้างสิทธิ์ที่ระบุผู้ใช้ (รวมถึง uid ของพวกเขา ผู้ให้บริการข้อมูลประจำตัวที่พวกเขาลงชื่อเข้าใช้ ฯลฯ) เซิร์ฟเวอร์ของคุณสามารถใช้ข้อมูลประจำตัวนี้เพื่อดำเนินการในนามของผู้ใช้

Firebase Admin SDK มีวิธีทำงานตรวจสอบสิทธิ์ด้านบนให้สำเร็จโดยช่วยให้คุณจัดการผู้ใช้ สร้างโทเค็นที่กำหนดเอง และยืนยันโทเค็น ID

การอ้างสิทธิ์ของผู้ใช้ที่กำหนดเอง

ในบางกรณี คุณอาจต้องการใช้การควบคุมการเข้าถึงแบบละเอียดสำหรับผู้ใช้ที่ลงชื่อเข้าใช้ด้วยผู้ให้บริการตรวจสอบสิทธิ์ Firebase รายใดรายหนึ่งที่ได้รับการสนับสนุน เช่น อีเมล/รหัสผ่าน, Google, Facebook, โทรศัพท์ ฯลฯ การอ้างสิทธิ์ของผู้ใช้ที่กำหนดเองและการรักษาความปลอดภัยแอปพลิเคชันร่วมกัน กฎให้ความสามารถนี้ ตัวอย่างเช่น ผู้ใช้ที่ลงชื่อเข้าใช้ด้วยผู้ให้บริการอีเมลและรหัสผ่านการตรวจสอบสิทธิ์ Firebase สามารถกำหนดการควบคุมการเข้าถึงได้โดยใช้การอ้างสิทธิ์ที่กำหนดเอง

การจัดการผู้ใช้

Firebase Admin SDK มี API สำหรับจัดการผู้ใช้ Firebase ด้วยสิทธิ์ระดับสูง API การจัดการผู้ใช้ของผู้ดูแลระบบช่วยให้คุณสามารถดึงข้อมูล สร้าง อัปเดต และลบผู้ใช้โดยทางโปรแกรมโดยไม่ต้องใช้ข้อมูลประจำตัวที่มีอยู่ของผู้ใช้ และไม่ต้องกังวลกับการจำกัดอัตราฝั่งไคลเอ็นต์

จัดการผู้ใช้

การสร้างโทเค็นแบบกำหนดเอง

การใช้งานหลักในการสร้างโทเค็นที่กำหนดเองคือการอนุญาตให้ผู้ใช้ตรวจสอบกับกลไกการตรวจสอบสิทธิ์ภายนอกหรือแบบเดิม นี่อาจเป็นสิ่งที่คุณควบคุม เช่น เซิร์ฟเวอร์ LDAP ของคุณ หรือผู้ให้บริการ OAuth บุคคลที่สามซึ่ง Firebase ไม่รองรับโดยกำเนิด เช่น Instagram หรือ LinkedIn

Firebase Admin SDK มีวิธีการในตัวสำหรับการสร้างโทเค็นที่กำหนดเอง คุณยังสามารถสร้างโทเค็นที่กำหนดเองโดยทางโปรแกรมในภาษาใดก็ได้โดยใช้ไลบรารี JWT ของบุคคลที่สาม

เซิร์ฟเวอร์ของคุณควรสร้างโทเค็นที่กำหนดเองด้วยตัวระบุที่ไม่ซ้ำกัน ( uid ) และส่งโทเค็นนั้นไปยังแอปไคลเอนต์ ซึ่งจะใช้เพื่อลงชื่อเข้าใช้ Firebase ดู สร้างโทเค็นแบบกำหนดเอง สำหรับตัวอย่างโค้ดและรายละเอียดเพิ่มเติมเกี่ยวกับกระบวนการสร้างโทเค็นแบบกำหนดเอง

สร้างโทเค็นที่กำหนดเอง

การตรวจสอบโทเค็น ID

หากแอปไคลเอ็นต์ Firebase สื่อสารกับเซิร์ฟเวอร์แบ็กเอนด์ คุณอาจต้องระบุผู้ใช้ที่ลงชื่อเข้าใช้อยู่ในปัจจุบันบนเซิร์ฟเวอร์ของคุณ เพื่อให้คุณดำเนินการตรรกะฝั่งเซิร์ฟเวอร์ในนามของผู้ใช้ได้ คุณทำได้อย่างปลอดภัยโดยใช้โทเค็น ID ซึ่ง Firebase สร้างขึ้นเมื่อผู้ใช้ลงชื่อเข้าใช้แอป Firebase โทเค็น ID เป็นไปตามข้อกำหนด OpenID Connect และมีข้อมูลเพื่อระบุผู้ใช้ เช่นเดียวกับโปรไฟล์อื่นๆ และข้อมูลที่เกี่ยวข้องกับการตรวจสอบสิทธิ์ คุณสามารถส่ง ตรวจสอบ และตรวจสอบโทเค็นเหล่านี้ได้จากแบ็กเอนด์ของคุณเอง วิธีนี้ช่วยให้คุณระบุผู้ใช้ที่ลงชื่อเข้าใช้อยู่ได้อย่างปลอดภัยและอนุญาตพวกเขาในแหล่งข้อมูลส่วนหลังของคุณเอง

Firebase Admin SDK มีวิธีการในตัวสำหรับยืนยันโทเค็น ID คุณยังสามารถตรวจสอบโทเค็น ID โดยทางโปรแกรมในภาษาใดก็ได้โดยใช้ไลบรารี JWT บุคคลที่สาม ดู ยืนยันโทเค็น ID สำหรับรายละเอียดเพิ่มเติมและตัวอย่างรหัสเกี่ยวกับกระบวนการตรวจสอบโทเค็น ID

ยืนยันรหัสโทเค็น

ผู้ใช้กำหนดเองเรียกร้อง

Firebase Admin SDK ให้คุณตั้งค่าแอตทริบิวต์ที่กำหนดเองในบัญชีผู้ใช้ได้ ด้วยการอ้างสิทธิ์ผู้ใช้แบบกำหนดเอง คุณสามารถให้สิทธิ์การเข้าถึง (บทบาท) ในระดับต่างๆ แก่ผู้ใช้ ซึ่งจะบังคับใช้ในกฎความปลอดภัยของแอปพลิเคชัน

หลังจากที่แก้ไขการอ้างสิทธิ์ที่กำหนดเองในผู้ใช้ผ่าน Firebase Admin SDK แล้ว การอ้างสิทธิ์ดังกล่าวจะเผยแพร่ไปยังผู้ใช้ที่ตรวจสอบสิทธิ์ในฝั่งไคลเอ็นต์ผ่านโทเค็น ID โทเค็น ID เป็นกลไกที่เชื่อถือได้สำหรับการส่งการอ้างสิทธิ์ที่กำหนดเองเหล่านี้ และการเข้าถึงที่ตรวจสอบสิทธิ์ทั้งหมดจะต้องตรวจสอบโทเค็น ID ก่อนดำเนินการตามคำขอที่เกี่ยวข้อง

ควบคุมการเข้าถึงด้วยการอ้างสิทธิ์ที่กำหนดเอง