Mengautentikasi server MCP Cloud Run Anda dengan IAP

Identity-Aware Proxy (IAP) memungkinkan Anda mengamankan server Model Context Protocol (MCP) yang di-deploy di Cloud Run dengan verifikasi identitas terpusat. Kemudian, Anda dapat mengonfigurasi klien seperti Gemini CLI atau agen AI untuk melakukan autentikasi melalui IAP dan menjalankan alat secara aman di server jarak jauh.

Sebelum memulai

  1. Pastikan Anda memiliki peran yang diperlukan.

  2. Aktifkan Cloud Run di project Anda.

  3. Aktifkan IAP di project Anda.

  4. Deploy server MCP di Cloud Run.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan guna mengonfigurasi autentikasi IAP untuk server MCP Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Mengonfigurasi IAP di layanan Cloud Run

Untuk mengonfigurasi IAP di server MCP Cloud Run, lakukan hal berikut:

  1. Berikan peran Cloud Run Invoker (roles/run.invoker) kepada agen layanan IAP:

    gcloud beta run services add-iam-policy-binding SERVICE_NAME \
        --member='serviceAccount:service-PROJECT_NUMBER@gcp-sa-iap.s3ns-system.iam.gserviceaccount.com' \
        --role='roles/run.invoker'
    

    Ganti kode berikut:

    • SERVICE_NAME: nama layanan
    • PROJECT_NUMBER: nomor Cloud de Confiance by S3NS projectAnda
  2. Aktifkan IAP saat Anda men-deploy layanan baru atau men-deploy revisi baru dari layanan yang ada:

    Layanan baru

    Untuk men-deploy layanan baru dengan IAP diaktifkan, jalankan perintah gcloud beta run deploy:

    gcloud beta run deploy SERVICE_NAME \
      --image=CONTAINER_IMAGE \
      --region=REGION \
      --project=PROJECT_ID \
      --allow-unauthenticated \
      --iap \
      --functional-type=mcp-server
    

    Ganti kode berikut:

    • SERVICE_NAME: nama layanan
    • CONTAINER_IMAGE: image container Anda
    • REGION: region tempat Anda men-deploy layanan
    • PROJECT_ID: ID project tempat Cloud Run diaktifkan

    Layanan yang ada

    Untuk men-deploy revisi baru dari layanan yang ada dengan IAP diaktifkan, jalankan gcloud beta run services update perintah:

    gcloud beta run services update SERVICE_NAME \
      --region=REGION \
      --iap \
      --functional-type=mcp-server
    

    Ganti kode berikut:

    • SERVICE_NAME: nama layanan
    • REGION: region tempat Anda men-deploy layanan
  3. Buat dan konfigurasi klien OAuth:

    Untuk mendaftarkan ID klien universal klien OAuth Anda agar dapat digunakan dengan IAP, lihat Membagikan klien OAuth untuk akses terprogram.

    Catat nilai berikut:

    • ID klien OAuth
    • Rahasia klien OAuth
    • URI Pengalihan
  4. Untuk menghubungkan klien seperti Gemini CLI atau agen Anda ke server MCP yang di-deploy, edit file ~/.gemini/settings.json.

    Tambahkan konfigurasi berikut ke file settings.json Anda:

    {
      "mcpServers": {
        "my_mcp_server": {
          "httpUrl": "https://SERVICE_URL",
          "oauth": {
            "enabled": "true",
            "clientId": "OAUTH_CLIENT_ID",
            "clientSecret": "OAUTH_CLIENT_SECRET",
            "scopes": [ "email", "openid" ],
            "redirectUri": "REDIRECT_URI"
          }
        }
      }
    }
    

    Ganti kode berikut:

    • SERVICE_URL: URL layanan Cloud Run Anda
    • OAUTH_CLIENT_ID: ID klien dari konfigurasi klien OAuth
    • OAUTH_CLIENT_SECRET: rahasia klien dari konfigurasi klien OAuth
    • REDIRECT_URI: URI pengalihan dari konfigurasi klien OAuth

Memverifikasi koneksi

Untuk memverifikasi bahwa klien Anda dapat melakukan autentikasi melalui IAP dan terhubung ke server MCP, lakukan hal berikut:

  1. Di terminal, mulai Gemini CLI:

    gemini
    
  2. Saat diminta di browser, selesaikan alur autentikasi IAP.

  3. Pastikan Gemini CLI berhasil menemukan dan mencantumkan alat yang disediakan oleh server MCP Anda.