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

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

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

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

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

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

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

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

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

ในการดำเนินการนี้ คุณสามารถดึงโทเค็น 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

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

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

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

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

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