Catch up on everthing we announced at this year's Firebase Summit. Learn more

บทนำสู่ 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 ของบุคคลที่สาม

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

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

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

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

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

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

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

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

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

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