Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

บทนำสู่ 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 ก่อนดำเนินการตามคำขอที่เกี่ยวข้อง

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