C++ のカスタム プロバイダで App Check を使ってみる

このページでは、App Check カスタム プロバイダを使用して、C++ アプリで App Check を有効にする方法を説明します。App Check を有効にすると、自分のアプリだけがプロジェクトの Firebase リソースにアクセスできるようになります。

デフォルトのプロバイダで App Check を使用する場合は、C++ のデフォルト プロバイダで App Check を有効にするをご覧ください。

始める前に

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");
  }
};

また、AppCheckProvider 実装のインスタンスを作成する AppCheckProviderFactory クラスを実装します。

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 ライブラリがインストールされたら、更新されたアプリのユーザーへの配布を開始します。

更新されたクライアント アプリは、Firebase にリクエストを送信するたびに App Check トークンを送信しますが、Firebase コンソールの [App Check] セクションで適用を有効にするまで、Firebase プロダクトは有効なトークンを必要としません。

指標をモニタリングして適用を有効にする

ただし、適用を有効にする前に、既存の正規ユーザーを中断しないように対策を行う必要があります。一方、アプリリソースの不審な使用に気づいた場合は、すぐに適用を有効にすることもできます。

使用するサービスの App Check 指標を確認すると、この決定を行ううえで役立ちます。

App Check の適用を有効にする

App Check がユーザーに与える影響を理解し、続行する準備ができたら、App Check の適用を有効にします。

デバッグ環境で App Check を使用する

アプリを App Check に登録した後に、開発中のエミュレータや継続的インテグレーション(CI)など、通常は App Check が有効と分類しない環境でアプリを実行する場合は、実際の証明書プロバイダの代わりに App Check デバッグ プロバイダを使用するデバッグビルドのアプリを作成できます。

C++ のデバッグ プロバイダで App Check を使用するをご覧ください。