Melakukan Autentikasi permintaan API

Perangkat dengan air gap Vertex AI di Google Distributed Cloud (GDC) menyediakan API dan layanan yang memerlukan autentikasi. Autentikasi adalah cara Anda membuktikan identitas Anda untuk mengakses layanan menggunakan token.

Token adalah objek digital yang memverifikasi bahwa pemanggil memberikan kredensial yang sesuai dan kredensial tersebut telah berhasil ditukarkan dengan token. Token membawa informasi tentang identitas akun yang meminta dan akses spesifik yang diizinkan untuk dimilikinya.

Halaman ini menjelaskan cara mengautentikasi ke Vertex AI API secara terprogram. Bergantung pada apakah Anda mengakses API Vertex AI sebagai pengguna atau dengan akun layanan, halaman ini menjelaskan langkah-langkah untuk mendapatkan token autentikasi untuk permintaan API Anda.

Pilih salah satu opsi berikut untuk mendapatkan token autentikasi:

Akun pengguna

Ikuti langkah-langkah berikut untuk mendapatkan token autentikasi dengan izin pengguna:

  1. Catat endpoint API yang ingin Anda gunakan.

  2. Dapatkan akses ke layanan Vertex AI yang ingin Anda gunakan dengan memberi akun pengguna Anda peran yang sesuai yang tercantum dalam Menyiapkan izin IAM.

  3. Login ke perangkat air-gapped GDC dengan akun pengguna yang harus Anda gunakan untuk berinteraksi dengan API:

    gdcloud auth login
    
  4. Dapatkan token autentikasi:

    gdcloud auth print-identity-token --audiences=https://ENDPOINT
    

    Ganti ENDPOINT dengan endpoint layanan yang Anda gunakan untuk organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat status dan endpoint layanan.

    Bergantung pada penggunaan token autentikasi yang dimaksud, Anda mungkin perlu menyertakan port setelah endpoint layanan di jalur audiens sebagai berikut:

    • Jika Anda menggunakan library klien untuk permintaan, Anda harus menyertakan port :443 setelah endpoint layanan di jalur audiens. Oleh karena itu, jalur --audiences dalam perintah harus berupa https://ENDPOINT:443.
    • Jika Anda menggunakan gRPC, curl, atau panggilan REST terprogram untuk permintaan Anda, jangan sertakan port. Oleh karena itu, jalur --audiences dalam perintah harus berupa https://ENDPOINT.

Output menampilkan token autentikasi. Tambahkan token ke header permintaan command line yang Anda buat, seperti dalam contoh berikut:

-H "Authorization: Bearer TOKEN"

Ganti TOKEN dengan nilai untuk token autentikasi yang ditampilkan output.

Akun layanan

Ikuti langkah-langkah berikut untuk mendapatkan token autentikasi dengan akun layanan:

  1. Catat endpoint API yang ingin Anda gunakan.

  2. Siapkan akun layanan yang ingin Anda gunakan untuk mengakses layanan Vertex AI.

  3. Berikan peran yang sesuai yang tercantum di Menyiapkan izin IAM kepada akun layanan agar akun tersebut dapat mengakses layanan yang ingin Anda gunakan.

  4. Dapatkan pasangan kunci layanan akun layanan Anda.

  5. Instal library klien google-auth:

    pip install google-auth
    
  6. Tambahkan kode berikut ke skrip Python:

    import os
    import google.auth
    from google.auth.transport import requests
    import requests as reqs
    
    os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "PATH_TO_SERVICE_KEY"
    os.environ["GRPC_DEFAULT_SSL_ROOTS_FILE_PATH"] = "CERT_NAME"
    
    # If you use a client library for your request,
    # you must include port :443 after the service endpoint
    # in the audience path.
    audience = "https://ENDPOINT"
    
    creds, project_id = google.auth.default()
    print(project_id)
    creds = creds.with_gdch_audience(audience)
    
    def test_get_token():
      sesh = reqs.Session()
      req = requests.Request(session=sesh)
      creds.refresh(req)
      print(creds.token)
    
    if __name__=="__main__":
      test_get_token()
    

    Ganti kode berikut:

    • PATH_TO_SERVICE_KEY: jalur ke file JSON yang berisi pasangan kunci akun layanan Anda.
    • CERT_NAME: nama file sertifikat Certificate Authority (CA), seperti org-1-trust-bundle-ca.cert. Anda hanya memerlukan nilai ini jika berada di lingkungan pengembangan. Jika tidak, hilangkan.
    • ENDPOINT: endpoint layanan yang Anda gunakan untuk organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat status dan endpoint layanan. Bergantung pada penggunaan yang dimaksudkan untuk token autentikasi, Anda mungkin perlu menyertakan port setelah endpoint layanan di jalur audiens sebagai berikut:

      • Jika Anda menggunakan library klien untuk permintaan, Anda harus menyertakan port :443 setelah endpoint layanan di jalur audiens. Oleh karena itu, jalur audience dalam skrip harus "https://ENDPOINT:443".
      • Jika Anda menggunakan gRPC, curl, atau panggilan REST terprogram untuk permintaan Anda, jangan sertakan port. Oleh karena itu, jalur audience dalam skrip harus "https://ENDPOINT".
  7. Simpan skrip Python.

  8. Jalankan skrip Python untuk mengambil token:

    python SCRIPT_NAME
    

    Ganti SCRIPT_NAME dengan nama yang Anda berikan ke skrip Python, seperti token.py.

Output menampilkan token autentikasi. Tambahkan token ke header permintaan command line yang Anda buat, seperti dalam contoh berikut:

-H "Authorization: Bearer TOKEN"

Ganti TOKEN dengan nilai untuk token autentikasi yang ditampilkan output.