Firebase Admin SDK 可讓您將自有的伺服器與 Firebase Authentication 整合。您可以使用 Firebase Admin SDK 管理使用者或驗證權杖。您可能會想這樣做的原因有很多:
使用者管理
您不一定需要前往 Firebase 控制台管理 Firebase 使用者。管理員使用者管理 API 可提供對這些使用者的程式輔助存取權。甚至可讓您執行 Firebase 主控台無法執行的操作,例如擷取使用者的完整資料,以及變更使用者的密碼、電子郵件地址或電話號碼。
自訂驗證
您可以將外部使用者系統與 Firebase 整合。舉例來說,您可能已經有現有的使用者資料庫,或者想整合 Firebase Authentication 本身不支援的第三方 ID 提供者。
如要這麼做,您可以使用任意宣告建立自訂權杖,以便識別使用者。這些自訂權杖可用於在用戶端應用程式上登入 Firebase Authentication 服務,並假設權杖宣告所述的身分。接著,系統會在存取其他 Firebase 服務 (例如 Cloud Storage) 時使用這個身分。
身分驗證
Firebase Authentication 主要用於識別應用程式的使用者,以便限制對其他服務 (例如 Cloud Storage) 的存取權。您也可以使用這項服務,在自己的伺服器上識別這些使用者。這樣一來,您就能代表已使用 Firebase Authentication 登入的使用者,安全地執行伺服器端邏輯。
如要這樣做,您可以從已透過 Firebase Authentication 登入的用戶端應用程式中擷取 ID 權杖,並在向伺服器提出的要求中加入該權杖。接著,伺服器會驗證 ID 權杖,並擷取用於識別使用者的宣告 (包括 uid
、使用者登入時所用的 ID 提供者等)。您的伺服器就能使用這項身分資訊,代表使用者執行動作。
Firebase Admin SDK 提供方法,可讓您管理使用者、產生自訂權杖,以及驗證 ID 權杖,以完成上述驗證作業。
自訂使用者版權聲明
在某些情況下,您可能會想為已使用其中一個支援的 Firebase 驗證服務供應器 (例如電子郵件/密碼、Google、Facebook、電話等) 登入的使用者,實作精細的存取權控管。這項功能結合了自訂使用者權利要求和應用程式安全性規則。舉例來說,使用者透過 Firebase Authentication 電子郵件和密碼提供者登入時,可以使用自訂權杖定義存取權控管。
使用者管理
Firebase Admin SDK 提供 API,可管理具有提升權限的 Firebase 使用者。管理員使用者管理 API 可讓您以程式輔助方式擷取、建立、更新及刪除使用者,無須使用者現有的憑證,也不必擔心用戶端的速率限制。
管理使用者建立自訂權杖
建立自訂權杖的主要用途,是讓使用者根據外部或舊版驗證機制進行驗證。這可能是一個您控管的伺服器,例如 LDAP 伺服器,或是 Firebase 本身不支援的第三方 OAuth 供應商,例如 Instagram 或 LinkedIn。
Firebase Admin SDK 內建建立自訂符記的方法。您也可以使用第三方 JWT 程式庫,以程式輔助方式在任何語言中建立自訂權杖。
您的伺服器應使用專屬 ID (uid
) 建立自訂權杖,並將該權杖傳遞至用戶端應用程式,以便用戶端應用程式使用該權杖登入 Firebase。如需程式碼範例和自訂符記建立程序的詳細資訊,請參閱「建立自訂符記」。
ID 權杖驗證
如果 Firebase 用戶端應用程式會與後端伺服器通訊,您可能需要在伺服器上識別目前登入的使用者,以便代表他們執行伺服器端邏輯。您可以使用 ID 權杖來安全地執行這項操作,這些權杖會在使用者登入 Firebase 應用程式時由 Firebase 建立。ID 權杖符合 OpenID Connect 規格,並包含用於識別使用者的資料,以及其他一些設定檔和驗證相關資訊。您可以透過自己的後端傳送、驗證及檢查這些符記。這樣一來,您就能安全地識別目前登入的使用者,並授權他們存取您自己的後端資源。
Firebase Admin SDK 內建驗證 ID 權杖的方法。您也可以使用第三方 JWT 程式庫,以程式輔助方式驗證任何語言的 ID 權杖。如要進一步瞭解 ID 權杖驗證程序的詳細資訊和程式碼範例,請參閱「驗證 ID 權杖」。
自訂使用者憑證附加資訊
Firebase Admin SDK 可讓您為使用者帳戶設定自訂屬性。您可以使用自訂使用者權利要求,為使用者提供不同層級的存取權 (角色),然後在應用程式的安全性規則中強制執行。
使用者透過 Firebase Admin SDK 修改自訂權利聲明後,系統會透過 ID 權杖,將這些權利聲明傳播至用戶端的已驗證使用者。ID 權杖是提供這些自訂宣告的可信賴機制,所有已驗證的存取權都必須在處理相關要求前驗證 ID 權杖。