WebアプリのデバッグプロバイダーでAppCheckを使用する

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

ローカルホストでデバッグプロバイダーを使用する

localhostからアプリを実行しているときに(たとえば、開発中)デバッグプロバイダーを使用するには、次の手順を実行します。

  1. デバッグビルドで、App Checkを初期化する前に、 self.FIREBASE_APPCHECK_DEBUG_TOKENtrueに設定してデバッグモードを有効にします。例えば:

    Web version 9

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    initializeAppCheck(app, { /* App Check options */ });
    

    Web version 8

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
    firebase.appCheck().activate(/* site key or provider */);
    
  2. ローカルでWebアプリにアクセスし、ブラウザーの開発者ツールを開きます。デバッグコンソールに、デバッグトークンが表示されます。

    AppCheck debug token: "123a4567-b89c-12d3-e456-789012345678". You will
    need to safelist it in the Firebase console for it to work.
  3. Firebaseコンソールの[アプリチェック]セクションで、アプリのオーバーフローメニューから[デバッグトークンの管理]を選択します。次に、前の手順でログインしたデバッグトークンを登録します。

    [デバッグトークンの管理]メニュー項目のスクリーンショット

トークンを登録すると、Firebaseバックエンドサービスはトークンを有効なものとして受け入れます。

このトークンを使用すると、有効なデバイスがなくてもFirebaseリソースにアクセスできるため、非公開にしておくことが重要です。公開リポジトリにコミットしないでください。登録されたトークンが危険にさらされた場合は、Firebaseコンソールですぐに取り消してください。

このトークンはブラウザにローカルに保存され、同じマシンの同じブラウザでアプリを使用するたびに使用されます。別のブラウザまたは別のマシンでトークンを使用する場合は、 self.FIREBASE_APPCHECK_DEBUG_TOKENtrueではなくトークン文字列に設定します。

CI環境でデバッグプロバイダーを使用する

継続的インテグレーション(CI)環境でデバッグプロバイダーを使用するには、次の手順を実行します。

  1. Firebaseコンソールの[アプリチェック]セクションで、アプリのオーバーフローメニューから[デバッグトークンの管理]を選択します。次に、新しいデバッグトークンを作成します。次のステップでトークンが必要になります。

    このトークンを使用すると、有効なデバイスがなくてもFirebaseリソースにアクセスできるため、非公開にしておくことが重要です。公開リポジトリにコミットしないでください。登録されたトークンが危険にさらされた場合は、Firebaseコンソールですぐに取り消してください。

    [デバッグトークンの管理]メニュー項目のスクリーンショット

  2. 作成したデバッグトークンをCIシステムの安全なキーストアに追加します(たとえば、GitHubActionsの暗号化されたシークレットまたはTravisCIの暗号化された変数)。

  3. 必要に応じて、CI環境内でデバッグトークンを環境変数として使用できるようにCIシステムを構成します。変数にAPP_CHECK_DEBUG_TOKEN_FROM_CIのような名前を付けます。

  4. デバッグビルドで、App Checkをインポートする前に、 self.FIREBASE_APPCHECK_DEBUG_TOKENをデバッグトークン環境変数の値に設定して、デバッグモードを有効にします。例えば:

    Web version 9

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = process.env.APP_CHECK_DEBUG_TOKEN_FROM_CI;
    initializeAppCheck(app, { /* App Check options */ });
    

    Web version 8

    self.FIREBASE_APPCHECK_DEBUG_TOKEN = process.env.APP_CHECK_DEBUG_TOKEN_FROM_CI;
    firebase.appCheck().activate(/* site key or provider */);
    

アプリがCI環境で実行されると、Firebaseバックエンドサービスは送信したトークンを有効なものとして受け入れます。