モバイルアプリやウェブアプリから API を直接呼び出す場合(生成 AI モデルへのアクセスを許可する API など)、API は不正なクライアントによる不正使用に対して脆弱になります。これらの API を保護するには、Firebase App Check を使用して、受信したすべての API 呼び出しが実際のアプリからのものであることを確認します。
Firebase AI Logic は、Firebase App Check と統合して、モバイルアプリとウェブアプリによって呼び出される生成 AI モデル API を保護できるプロキシ ゲートウェイを提供します。App Check との統合は、Firebase AI Logic SDK を使用している場合、Gemini Developer API と Vertex AI Gemini API の両方でサポートされています。Gemini モデルと Imagen モデルの両方を保護できます。
App Check の仕組みの概要
App Check を使用すると、アプリを実行しているデバイスでアプリまたはデバイスの証明書プロバイダを使用して、次のいずれか、または両方であることを検証できます。
- 正規のアプリから送信されたリクエストであること
- 正規の未改造のデバイスから送信されたリクエストであること
この証明書は、アプリが Firebase AI Logic SDK を使用して送信するすべてのリクエストに添付されます。App Check の適用を有効にすると、承認していないアプリまたはプラットフォームからのリクエストと同様に、有効な証明書がないクライアントからのリクエストは拒否されます。
詳細については、Firebase App Check のドキュメントをご覧ください。
利用可能なプロバイダと実装手順
App Check には、証明書プロバイダとして次のサービスを使用するためのサポートが組み込まれています。プロバイダのリンクをクリックして、そのプロバイダのApp Checkドキュメント(説明や実装手順など)を表示します。
- Apple プラットフォーム: DeviceCheck または App Attest
- Android: Play Integrity
- ウェブ: reCAPTCHA Enterprise
これらのプロバイダでは要件を満たすことができない場合は、サードパーティの証明書プロバイダを使用できます。また、独自の証明手法を使用する独自のサービスを実装することもできます(詳細については、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 に関する追加情報
App Check の割り当てと上限を確認する。
アプリを実際のユーザーにリリースする前に、App Check の適用を有効にしてください。
Firebase AI Logic が App Check と統合される仕組みを理解する
Firebase AI Logic SDK を使用するには、Firebase プロジェクトで Firebase AI Logic API(firebasevertexai.googleapis.com
)を有効にする必要があります。これは、Firebase AI Logic SDK によって行われたリクエストが、まず Firebase AI Logic サーバーに送信されるためです。Firebase AI Logic サーバーはプロキシ ゲートウェイとして機能し、Firebase App Check の検証が行われます。その後、選択した「Gemini API」プロバイダのバックエンドと API にリクエストを送信して、Gemini モデルと Imagen モデルにアクセスできます。