リクエストを認証済みユーザーのみに制限する

Firebase プロジェクトに認証済みユーザーモード を適用できます。適用した場合、Firebase AI Logic を介した Gemini API リクエストはすべて、アプリの 認証済みユーザーからのリクエストである必要があります。具体的には、アプリから Firebase AI Logic にリクエストを送信する前に、アプリのエンドユーザーが Firebase Authentication を使用して認証されている必要があります。エンドユーザーが 認証されていない場合、リクエストはブロックされます。

リクエストがブロックされると、レスポンスは 401: unauthenticated エラーになります。

重要な考慮事項

認証済みユーザーモードに関する次の重要な考慮事項に注意してください。

認証済みユーザーモードが適用されている場合

認証済みユーザーモードが適用されている場合は、次の点に注意してください。

  • この設定は、プロジェクト全体Firebase AI Logic の設定です。

    • プロジェクトに登録されているすべてのアプリに適用されます。
    • 適用されているプロジェクトにのみ適用されます。
  • この設定は、ブロック を介したすべてのリクエストをFirebase AI Logic 送信しないない Firebase Authentication 認証情報。

    • ユーザーが Firebase Authenticationリクエストを送信する 前にFirebase AI Logic に認証されている必要があります。
    • この設定は、すべてのリクエストに適用されます。Firebase AI Logic を介して、 Gemini Developer APIVertex AI Gemini API の両方に対してです。
    • この設定は、サーバー プロンプト テンプレートを使用するすべてのリクエストに適用されます。
    • この設定は、ユーザーごと、API ごと、またはテンプレートごとに適用することはできません。
  • この設定は、プロジェクト内の Gemini API リクエストをブロックしません。 Firebase AI Logic を介さない

  • ハイブリッド / オンデバイスを使用している場合:

    • ユーザーが認証されていない場合、この設定はクラウド ホスト型モデルへのリクエストをブロック します。
    • この設定は、ユーザーの認証状態に関係なく、オンデバイス モデルへのリクエストをブロック しません。
  • Gemini Live API を使用している場合:

    • この設定は、認証済みユーザーであっても、 を使用する場合、ウェブアプリの Gemini Live API の使用をブロック します。Firebase AI Logicこれには、Firebase JS SDK を使用するウェブアプリや Flutter ウェブアプリが含まれます。
  • Firebase AI Logic REST API を使用している場合:

    • この設定は、認証情報を送信しない推論リクエストをブロックします。 Firebase Authenticationこれには、templateGenerateContenttemplateStreamGenerateContent などのサーバー プロンプト テンプレートのリクエストが含まれます。
    • この設定は、IAM によって保護されているため、コントロール プレーン リクエスト(テンプレートと構成の管理など)をブロック しません。
  • この設定は、countTokens(Count Tokens API)へのリクエストをブロック しません。

認証済みユーザーモードを適用する前に

認証済みユーザーモードを適用する前に、次の点に注意してください。

  • Firebase Authentication を使用しないアプリの既存バージョンがある場合:Firebase Authentication

    • この設定は、ブロック リクエストを Firebase AI Logic から それらの既存のアプリ バージョンから行います。
    • 認証済みユーザーモードを適用する前に、すべてのアクティブなクライアントが Firebase Authenticationを使用するように更新されていることを確認してください。
  • 古いバージョンの Flutter プラグインでは、 特別なインスタンス化が必要です。リクエストとともにFirebase Authentication 認証情報を送信するためです。

    • アプリで Flutter プラグイン firebase_ai v3.11.0 以下(BoM v4.12.0 以下)を使用しており、インスタンス化時に Authentication を渡さない場合、この設定は Firebase AI Logic を介したリクエストを ブロック します。 認証済みユーザーでも同様です。
    • 認証済みユーザーモードを適用する前に、Flutter のすべてのアクティブなクライアントが新しいバージョンのプラグインに更新されていることを確認してください。

Firebase Authentication を設定する

Firebase Authentication のドキュメントでは、パスワード、電話番号、一般的なフェデレーション ID プロバイダ(Google、Facebook、GitHub など)の使用など、サポートされている認証プロバイダの説明と 実装手順について説明しています。

アプリに Firebase Authentication を実装すると、アプリは認証済みユーザーの Firebase Authentication 認証情報を Firebase AI Logic へのリクエストごとに自動的に送信します。

一部の認証プロバイダについては、次の点に注意してください。

  • カスタム認証: へのリクエストとともに送信する署名付き認証トークンを取得する必要があります。Firebase AI Logic詳細については、 カスタム認証をご覧ください。

  • 匿名 または メールアドレス/パスワード 認証方法: これらのユーザーは 認証済みユーザーと見なされるため、Firebase AI Logic へのリクエストはブロックされ ません。

    匿名認証とメールアドレス/パスワード認証では、ユーザーがアプリにアクセスして Firebase Authentication認証情報を作成する必要がありますが、デフォルトではユーザーの本人確認が不要なため、堅牢な認証形式ではありません(特に有料リソースの保護の場合)。アプリでこれらの認証方法のデフォルト実装を使用している場合、認証済みユーザーモードを適用しても保護が不十分になる可能性があります。Firebase App Check も適用されていることを確認してください。Firebase App Check

認証済みユーザーモードの設定を管理する

認証済みユーザーモードの設定は、Firebase コンソールで管理します。

必要な IAM 権限とロール

認証済みユーザーモードの設定を管理するには、firebasevertexai.configs.update 権限が必要です。この権限は、オーナー、編集者、Firebase 管理者、Firebase AI Logic 管理者の IAM ロールにデフォルトで含まれています。

認証済みユーザーモードの適用

Firebase プロジェクトに認証済みユーザーモードを適用する手順は次のとおりです。

  1. まだ確認していない場合は、このガイドの前半で説明した 認証済みユーザーモードに関する 重要な考慮事項を確認してください。

  2. まだ設定していない場合は、アプリで Firebase Authentication を設定します (このガイドの前半で説明したように)。

  3. 認証済みユーザーモードを適用します。

    1. Firebase コンソールで、[AI サービス] > [AI Logic] > [設定] タブに移動します。

    2. [認証済みユーザーモード] で、 [認証済みユーザーモードを適用する] の切り替えボタンを [適用] にスライドします。

    3. 確認ダイアログを確認し、[確認] をクリックします。

認証済みユーザーモードの適用を停止する

認証済みユーザーモードの適用を停止する場合は、次の点に注意してください。

  • Firebase AI Logic を介したリクエストで、認証情報を送信しないものが許可されます。Firebase Authentication
  • これは、プロジェクト全体Firebase AI Logic の設定です。

Firebase プロジェクトの認証済みユーザーモードの適用を停止する手順は次のとおりです。

  1. Firebase コンソールで、[AI サービス] > [AI Logic] > [設定] タブに移動します。

  2. [**認証済みユーザーモード**] で、 [**認証済みユーザーモードを適用する**] をオフにします。

  3. 確認ダイアログを確認し、[確認] をクリックします。