本頁面說明如何使用自訂 App Check 供應器,在 C++ 應用程式中啟用 App Check。啟用 App Check 可確保只有您的應用程式可以存取專案的 Firebase 資源。
如要使用 App Check 搭配預設提供者,請參閱使用 C++ 搭配預設提供者啟用 App Check。
事前準備
如果尚未將 Firebase 新增至 C++ 專案,請將 Firebase 新增至 C++ 專案。
1. 將 App Check 程式庫新增至應用程式
按照 App Check 的設定操作說明,在一組依附元件中加入 App Check 程式庫。
2. 實作 App Check 介面
首先,您需要建立實作 AppCheckProvider
和 AppCheckProviderFactory
介面的類別。
您的 AppCheckProvider
類別必須具備 GetToken()
方法,用於收集自訂 App Check 供應商所需的任何資訊,做為真實性的證明,並將其傳送至權杖取得服務,以換取 App Check 權杖。App Check SDK 會處理權杖快取,因此在實作 GetToken()
時,一律會取得新的權杖。
class YourCustomAppCheckProvider : public AppCheckProvider {
void GetToken(std::function<void(AppCheckToken, int, const std::string&)>
completion_callback) {
// Logic to exchange proof of authenticity for an App Check token and
// expiration time.
// ...
// Create AppCheckToken object.
AppCheckToken appCheckToken;
appCheckToken.token = token;
appCheckToken.expire_time_millis = expireTime;
completion_callback(appCheckToken, 0, "");
// Or, if needing to return an error
//completion_callback({}, error_code, "Error description");
}
};
此外,請實作 AppCheckProviderFactory
類別,以便建立 AppCheckProvider
實作的例項:
class YourCustomAppCheckProviderFactory : public AppCheckProviderFactory {
AppCheckProvider* CreateProvider(App* app) {
// Create and return an AppCheckProvider object.
return new YourCustomAppCheckProvider(app);
}
}
3. 初始化 App Check
將下列初始化程式碼加入應用程式,讓應用程式在使用任何其他 Firebase SDK 前優先執行:
firebase::app_check::AppCheck::SetAppCheckProviderFactory(
YourCustomAppCheckProviderFactory::GetInstance());
後續步驟
在應用程式中安裝 App Check 程式庫後,請開始向使用者發布更新版應用程式。
更新後的用戶端應用程式會開始傳送 App Check 權杖,並附帶每項對 Firebase 提出的要求,但 Firebase 產品不會要求權杖有效,除非您在 Firebase 控制台的 App Check 部分啟用強制執行功能。
監控指標並啟用強制執行功能
不過,在強制執行之前,您應先確認這樣做不會影響現有的合法使用者。另一方面,如果您發現應用程式資源遭到濫用,建議您盡早啟用強制執行功能。
為協助您做出這項決定,您可以查看所用服務的 App Check 指標:
- 監控 Realtime Database、Cloud Firestore、Cloud Storage、Authentication (Beta 版) 和 Vertex AI in Firebase 的 App Check 要求指標。
- 監控「Cloud Functions」的 App Check 個要求指標。
啟用 App Check 強制執行功能
瞭解 App Check 對使用者的影響,並準備繼續執行時,您可以啟用 App Check 強制執行機制:
- 為 Realtime Database、Cloud Firestore、Cloud Storage、Authentication (Beta 版) 和 Vertex AI in Firebase 啟用 App Check 強制執行功能。
- 為 Cloud Functions 啟用 App Check 強制執行功能。
在偵錯環境中使用 App Check
如果您在為應用程式註冊 App Check 後,想在 App Check 通常不會歸類為有效的環境中執行應用程式,例如開發期間的模擬器,或從持續整合 (CI) 環境,您可以建立應用程式的偵錯版本,使用 App Check 偵錯提供者,而非實際的認證提供者。
請參閱「使用 C++ 搭配偵錯提供者使用 App Check」。