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 を使用するをご覧ください。