Admin Auth API 簡介

Firebase Admin SDK 則可讓您將自己的伺服器與 Firebase 驗證整合。您可以使用 Firebase Admin SDK 管理使用者或管理驗證權杖。可能的原因如下:

使用者管理

不一定每次都能前往 Firebase 控制台 管理 Firebase 使用者。admin user management API 可透過程式存取這些使用者此外,還能讓您執行 Firebase 控制台無法執行的操作,例如擷取使用者的完整資料,以及變更使用者的密碼、電子郵件地址或電話號碼。

自訂驗證

您可以將外部使用者系統與 Firebase 整合。例如,您可能已經有使用者資料庫,或是想要與 Firebase 驗證未原生支援的第三方識別資訊提供者整合。

為此,您可以建立可識別使用者的任意憑證附加資訊來自訂符記。接著,這些自訂權杖就能在用戶端應用程式中登入 Firebase 驗證服務,並假設其憑證聲明中描述的身分。存取其他 Firebase 服務 (如 Cloud Storage) 時,系統就會使用這個身分。

身分驗證

Firebase 驗證主要用於識別應用程式使用者,以限制對 Cloud Storage 等其他服務的存取權。您也可以透過這項服務,在自己的伺服器上識別這些使用者。這樣一來,您就能代表透過 Firebase 驗證登入的使用者安全地執行伺服器端邏輯。

為此,您可以從以 Firebase 驗證登入的用戶端應用程式擷取 ID 權杖,並在對伺服器的要求中加入該權杖。接著,您的伺服器會驗證 ID 權杖,並擷取用於識別使用者的憑證附加資訊 (包括其 uid、登入的識別資訊提供者等)。如此一來,您的伺服器就能使用這些識別資訊,代表使用者執行動作。

Firebase Admin SDK 提供完成上述驗證工作的方法,可讓您管理使用者、產生自訂憑證及驗證 ID 權杖。

自訂使用者聲明

在某些情況下,您可能希望為透過上述任一支援 Firebase 驗證提供者 (例如電子郵件/密碼、Google、Facebook、手機等) 登入的使用者實作精細的存取權控管機制。自訂使用者憑證附加資訊和應用程式安全性規則的組合可提供此項功能。例如,以 Firebase 驗證電子郵件和密碼提供者登入的使用者,可以使用自訂憑證附加資訊來定義存取權控管。

使用者管理

Firebase Admin SDK 提供的 API 可讓您以進階權限管理 Firebase 使用者。透過 Admin User Management API,您不用具備使用者現有的憑證,也能透過程式擷取、建立、更新及刪除使用者,而且不必擔心用戶端頻率限制。

管理使用者

建立自訂權杖

建立自訂憑證的主要用途是讓使用者進行外部或舊版的驗證機制。這可能是由您控管的其中一個 (例如 LDAP 伺服器),或 Firebase 不原生支援的第三方 OAuth 供應商 (例如 Instagram 或 LinkedIn)。

Firebase Admin SDK 內建可建立自訂憑證的方法。您也可以使用第三方 JWT 程式庫,以任何語言建立自訂符記。

您的伺服器應以專屬 ID (uid) 建立自訂權杖,並將該權杖傳遞至用戶端應用程式,該應用程式再用於登入 Firebase。如需程式碼範例,請參閱「建立自訂權杖」一文,進一步瞭解自訂權杖建立程序。

建立自訂權杖

ID 權杖驗證

如果您的 Firebase 用戶端應用程式與後端伺服器通訊,您可能需要在伺服器上識別目前登入的使用者,以便代表使用者執行伺服器端邏輯。您可以使用由 Firebase 在使用者登入 Firebase 應用程式時建立的 ID 憑證安全地完成此操作。ID 憑證符合 OpenID Connect 規格,包含可識別使用者的資料,以及其他一些與設定檔和驗證相關的資訊。您可以透過自己的後端傳送、驗證及檢查這些權杖。這可讓您安全地識別目前登入的使用者,並授權他們登入自己的後端資源。

Firebase Admin SDK 內建驗證 ID 權杖的方法。您也可以使用第三方 JWT 程式庫,以任何語言驗證 ID 權杖。如要進一步瞭解 ID 權杖驗證程序,請參閱「驗證 ID 權杖」一文。

驗證 ID 權杖

自訂使用者著作權聲明

Firebase Admin SDK 可讓您為使用者帳戶設定自訂屬性。透過自訂使用者憑證附加資訊,您可以為使用者授予不同層級的存取權 (角色),這些權限層級隨即會在應用程式的安全性規則中強制執行。

透過 Firebase Admin SDK 修改使用者的自訂憑證附加資訊後,會在用戶端透過 ID 權杖在用戶端傳播給已驗證的使用者。ID 權杖是提供這類自訂憑證附加資訊的可靠機制,所有經過驗證的存取權都必須在處理關聯要求之前,先驗證 ID 權杖。

運用自訂著作權聲明控管存取權