僅允許通過驗證的使用者提出要求

您可以為 Firebase 專案強制啟用「僅限通過驗證的使用者」模式。強制執行後,透過 Firebase AI Logic 傳送的所有 Gemini API 要求都必須來自應用程式的已驗證使用者。具體來說,應用程式的使用者必須先透過 Firebase Authentication 驗證身分,才能從應用程式向 Firebase AI Logic 傳送要求。如果使用者未經驗證,要求就會遭到封鎖。

如果要求遭到封鎖,回應會是 401: unauthenticated 錯誤。

重要事項

請留意下列「僅限通過驗證的使用者」模式重要注意事項。

強制啟用「僅限通過驗證的使用者」模式時

強制啟用「僅限通過驗證的使用者」模式時,請注意下列事項:

  • 這項設定是 Firebase AI Logic 的專案層級設定。

    • 這項設定會套用至專案中註冊的所有應用程式。
    • 僅適用於強制執行的專案。
  • 這項設定會封鎖所有未傳送 Firebase Authentication 憑證的 Firebase AI Logic 要求。

    • 使用者必須先透過 Firebase Authentication 進行驗證,才能將要求傳送至 Firebase AI Logic。
    • 這項設定適用於透過 Firebase AI Logic 傳送至 Gemini Developer API 和 Agent Platform Gemini API (formerly Vertex AI) 的「所有」要求。
    • 這項設定適用於使用伺服器提示詞範本的所有要求。
    • 這項設定無法依使用者、API 或範本套用。
  • 這項設定「不會」封鎖專案中「不是」透過 Firebase AI Logic 傳送的 Gemini API 要求。

  • 如果使用混合/裝置端:

    • 如果使用者未經驗證,這項設定會封鎖對雲端託管模型的要求。
    • 無論使用者的驗證狀態為何,這項設定都不會封鎖對裝置端模型的請求。
  • 如果您使用的是 Gemini Live API:

    • 這項設定會禁止網頁應用程式使用 Firebase AI Logic 存取 Gemini Live API,即使是已驗證的使用者也一樣。包括使用 Firebase JS SDK 的網頁應用程式,或 Flutter 網頁應用程式。
  • 如果您使用的是 Firebase AI Logic REST API:

    • 這項設定會封鎖未傳送 Firebase Authentication 憑證的推論要求。包括 templateGenerateContent 或 templateStreamGenerateContent 等伺服器提示詞範本要求。
    • 這項設定不會封鎖控制層要求 (例如管理範本和設定的要求),因為這些要求受到 IAM 保護。
  • 這項設定不會封鎖傳送至 countTokens (Count Tokens API) 的要求。

強制啟用「僅限通過驗證的使用者」模式前

強制執行「僅限通過驗證的使用者」模式之前,請注意下列事項:

  • 如果現有的應用程式版本未使用 Firebase Authentication:

    • 這項設定會封鎖這些現有應用程式版本透過 Firebase AI Logic 傳送的要求。
    • 強制執行「僅限通過驗證的使用者」模式「之前」,請務必將所有運作中的用戶端更新為使用 Firebase Authentication。
  • 舊版 Flutter 外掛程式需要特殊例項化,才能傳送 Firebase Authentication 憑證和要求。

    • 如果應用程式使用 Flutter 外掛程式 firebase_ai v3.11.0 以下版本 (BoM v4.12.0 以下版本),且未在例項化期間傳入 Authentication,這項設定會封鎖透過 Firebase AI Logic 提出的要求,即使是已驗證的使用者也一樣。
    • 請務必先將所有運作中的 Flutter 用戶端更新至較新版本的 Plugin,再強制執行已驗證使用者模式。

設定「Firebase Authentication」

Firebase Authentication 說明文件提供支援的驗證供應商說明和實作操作說明,包括使用密碼、電話號碼、熱門聯合身分識別提供者 (例如 Google、Facebook 和 GitHub) 等。

在應用程式中導入 Firebase Authentication 後,應用程式會自動在向 Firebase AI Logic 提出的每項要求中,傳送已驗證使用者的 Firebase Authentication 憑證。

請留意下列有關部分驗證供應商的事項:

  • 自訂驗證:您必須擷取已簽署的驗證權杖,並與要求一併傳送至 Firebase AI Logic。詳情請參閱「自訂驗證」。

  • 匿名或電子郵件/密碼驗證方法:這些使用者會視為已驗證使用者,因此他們對 Firebase AI Logic 的要求不會遭到封鎖。

    請注意,雖然匿名和電子郵件/密碼驗證方法需要使用者造訪應用程式來建立 Firebase Authentication 憑證,但這些方法並非強大的驗證形式 (尤其是保護付費資源),因為預設不會要求使用者進行身分驗證。如果應用程式使用這些驗證方式的預設實作,即使強制啟用「僅限通過驗證的使用者」模式,保護效果也可能較差。請務必強制執行 Firebase App Check。

管理「僅限通過驗證的使用者」模式設定

您可以在 Firebase 控制台管理「僅限通過驗證的使用者」模式設定。

必要的 IAM 權限和角色

如要管理已驗證使用者模式設定,您必須具備 firebasevertexai.configs.update 權限,下列 IAM 角色預設包含這項權限:擁有者、編輯者、Firebase 管理員和 Firebase AI Logic 管理員。

強制啟用「僅限通過驗證的使用者」模式

如要為 Firebase 專案強制啟用「僅限通過驗證的使用者」模式,請按照下列步驟操作:

  1. 如果您尚未閱讀本指南前文,請先詳閱已驗證使用者模式的重要注意事項。

  2. 如果尚未在應用程式中設定 Firebase Authentication,請按照本指南前述步驟操作。

  3. 強制啟用「僅限通過驗證的使用者」模式:

    1. 在 Firebase 控制台中,依序前往「AI Services」(AI 服務) >「AI Logic」>「Settings」(設定) 分頁標籤。

    2. 在「Authenticated-users mode」(僅限通過驗證的使用者模式) 下方,將「Enforce authenticated-users mode」(強制啟用僅限通過驗證的使用者模式) 切換鈕滑動至「Enforced」(強制啟用)。

    3. 查看確認對話方塊,然後按一下「確認」。

停止強制執行「僅限通過驗證的使用者」模式

如果停止強制執行「僅限通過驗證的使用者」模式,請注意下列事項:

  • 透過 Firebase AI Logic 提出的要求,如果「未」傳送 Firebase Authentication 憑證,將會允許。
  • 這項 Firebase AI Logic 設定會套用至整項專案。

如要停止對 Firebase 專案強制執行「僅限通過驗證的使用者」模式,請按照下列步驟操作:

  1. 在 Firebase 控制台中,依序前往「AI Services」(AI 服務) >「AI Logic」>「Settings」(設定) 分頁標籤。

  2. 在「Authenticated-users mode」(僅限通過驗證的使用者模式) 下方,關閉「Enforce authenticated-users mode」(強制啟用僅限通過驗證的使用者模式)。

  3. 查看確認對話方塊,然後按一下「確認」。