Firebase App Check を実装して、不正なクライアントから API を保護する

モバイルアプリやウェブアプリから API を直接呼び出す場合(生成 AI モデルへのアクセスを許可する API など)、API は不正なクライアントによる不正使用に対して脆弱になります。これらの API を保護するために、Firebase App Check を使用して、すべての受信 API 呼び出しが実際のアプリからのものであることを確認できます。

Firebase AI Logic は、Firebase App Check と統合し、モバイルアプリとウェブアプリから呼び出される生成 AI モデル API を保護できるプロキシ ゲートウェイを提供します。Firebase AI Logic SDK を使用する場合、Gemini Developer APIVertex AI Gemini API の両方で App Check との統合がサポートされます。Gemini モデルと Imagen モデルの両方を保護できます。

App Check の仕組みの概要

App Check を使用すると、アプリを実行しているデバイスでアプリまたはデバイスの証明書プロバイダを使用して、次のいずれか、または両方であることを確認できます。

  • 正規のアプリから送信されたリクエストであること
  • 正規の未改造のデバイスから送信されたリクエストであること

この証明書は、アプリが Firebase AI Logic SDK を使用して送信するすべてのリクエストに添付されます。App Check の適用を有効にすると、承認していないアプリまたはプラットフォームからのリクエストと同様に、有効な証明書がないクライアントからのリクエストは拒否されます。

詳細については、Firebase App Check のドキュメントをご覧ください。

利用可能なプロバイダと実装手順

App Check には、証明書プロバイダとして次のサービスを使用するためのサポートが組み込まれています。プロバイダのリンクをクリックすると、そのプロバイダの App Check ドキュメント(説明や実装手順など)が表示されます。

これらのプロバイダでは要件を満たすことができない場合は、サードパーティの証明書プロバイダを使用できます。また、独自の証明手法を使用する独自のサービスを実装することもできます(詳しくは、App Check のドキュメントをご覧ください)。

Flutter で必要な特別なインスタンス化

Gemini API プロバイダをクリックして、このページでプロバイダ固有のコンテンツとコードを表示します。

Flutter アプリで Firebase AI Logic とともに App Check を使用する場合は、次のように、インスタンス化時に App Check を明示的に渡す必要があります。

final ai = await FirebaseAI.googleAI(appCheck: FirebaseAppCheck.instance)
  .generativeModel(model: 'MODEL_NAME');

App Check に関する補足情報

Firebase AI LogicApp Check とどのように統合されるかを理解する

Firebase AI Logic SDK を使用するには、Firebase プロジェクトで Firebase AI Logic API(firebasevertexai.googleapis.comを有効にする必要があります。これは、Firebase AI Logic SDK によって行われたリクエストが最初に Firebase AI Logic サーバーに送信されるためです。このサーバーはプロキシ ゲートウェイとして機能し、リクエストが選択した「Gemini API」プロバイダのバックエンドと Gemini モデルと Imagen モデルにアクセスする API に進む前に、Firebase App Check 検証が行われます。