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

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

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

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

การตรวจสอบสิทธิ์ที่กำหนดเอง

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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