Panduan memulai Authentication dengan OAuth

Cara termudah untuk melakukan autentikasi ke Gemini API adalah dengan mengonfigurasi kunci API, seperti yang dijelaskan dalam panduan memulai Gemini API. Jika Anda memerlukan kontrol akses yang lebih ketat, Anda dapat menggunakan OAuth. Panduan ini akan membantu Anda menyiapkan autentikasi dengan OAuth.

Panduan ini menggunakan pendekatan autentikasi sederhana yang sesuai untuk lingkungan pengujian. Untuk lingkungan produksi, pelajari autentikasi dan otorisasi sebelum memilih kredensial akses yang sesuai untuk aplikasi Anda.

Tujuan

  • Menyiapkan project cloud untuk OAuth
  • Menyiapkan application-default-credentials
  • Mengelola kredensial di program Anda, bukan menggunakan gcloud auth

Prasyarat

Untuk menjalankan quickstart ini, Anda memerlukan:

Menyiapkan project cloud

Untuk menyelesaikan panduan memulai ini, Anda harus menyiapkan project Cloud terlebih dahulu.

1. Mengaktifkan API

Sebelum menggunakan Google API, Anda harus mengaktifkannya di project Google Cloud.

  • Di konsol Google Cloud, aktifkan Google Generative Language API.

    Mengaktifkan API

2. Mengonfigurasi layar izin OAuth

Selanjutnya, konfigurasikan layar izin OAuth project dan tambahkan diri Anda sebagai pengguna pengujian. Jika Anda telah menyelesaikan langkah ini untuk project Cloud, lanjutkan ke bagian berikutnya.

  1. Di Konsol Google Cloud, buka Menu > APIs & Services > OAuth consent screen.

    Buka OAuth consent screen

  2. Pilih jenis pengguna Eksternal untuk aplikasi Anda, lalu klik Buat.

  3. Lengkapi formulir pendaftaran aplikasi (Anda dapat mengosongkan sebagian besar kolom), lalu klik Simpan dan Lanjutkan.

  4. Untuk saat ini, Anda dapat melewati penambahan cakupan dan mengklik Save and Continue. Pada masa mendatang, jika Anda membuat aplikasi untuk digunakan di luar organisasi Google Workspace, Anda harus menambahkan dan memverifikasi cakupan otorisasi yang diperlukan aplikasi Anda.

  5. Tambahkan pengguna pengujian:

    1. Di bagian Pengguna pengujian, klik Tambahkan pengguna.
    2. Masukkan alamat email Anda dan pengguna pengujian resmi lainnya, lalu klik Simpan dan Lanjutkan.
  6. Tinjau ringkasan pendaftaran aplikasi Anda. Untuk melakukan perubahan, klik Edit. Jika pendaftaran aplikasi terlihat OK, klik Kembali ke Dasbor.

3. Mengizinkan kredensial untuk aplikasi desktop

Untuk melakukan autentikasi sebagai pengguna akhir dan mengakses data pengguna di aplikasi, Anda harus membuat satu atau beberapa Client ID OAuth 2.0. Client ID digunakan untuk mengidentifikasi satu aplikasi ke server OAuth Google. Jika aplikasi Anda berjalan di beberapa platform, Anda harus membuat client ID terpisah untuk setiap platform.

  1. Di konsol Google Cloud, buka Menu > APIs & Services > Credentials.

    Buka Kredensial

  2. Klik Create Credentials > OAuth client ID.

  3. Klik Jenis aplikasi > Aplikasi desktop.

  4. Di kolom Name, ketik nama untuk kredensial. Nama ini hanya ditampilkan di konsol Google Cloud.

  5. Klik Buat. Layar klien OAuth yang dibuat akan muncul, yang menampilkan Client ID dan Secret klien baru Anda.

  6. Klik Oke. Kredensial yang baru dibuat akan muncul di bagian Client ID OAuth 2.0.

  7. Klik tombol download untuk menyimpan file JSON. File ini akan disimpan sebagai client_secret_<identifier>.json, dan ganti namanya menjadi client_secret.json lalu pindahkan ke direktori kerja Anda.

Menyiapkan kredensial default aplikasi

Untuk mengonversi file client_secret.json menjadi kredensial yang dapat digunakan, teruskan lokasinya ke argumen --client-id-file perintah gcloud auth application-default login.

gcloud auth application-default login \
    --client-id-file=client_secret.json \
    --scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'

Penyiapan project yang disederhanakan dalam tutorial ini memicu dialog "Google belum memverifikasi aplikasi ini". Hal ini normal, pilih "lanjutkan".

Tindakan ini menempatkan token yang dihasilkan di lokasi yang diketahui sehingga dapat diakses oleh gcloud atau library klien.

gcloud auth application-default login 
--no-browser --client-id-file=client_secret.json
--scopes='https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/generative-language.retriever'

Setelah Anda menetapkan kredensial default aplikasi (ACD), library klien dalam sebagian besar bahasa memerlukan bantuan minimal atau tidak sama sekali untuk menemukannya.

Curl

Cara tercepat untuk menguji apakah kode ini berfungsi adalah dengan menggunakannya untuk mengakses REST API menggunakan curl:

access_token=$(gcloud auth application-default print-access-token)
project_id=<MY PROJECT ID>
curl -X GET https://generativelanguage.googleapis.com/v1/models \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer ${access_token}" \
    -H "x-goog-user-project: ${project_id}" | grep '"name"'

Python

Dengan python, library klien akan menemukannya secara otomatis:

pip install google-generativeai

Skrip minimal untuk mengujinya mungkin adalah:

import google.generativeai as genai

print('Available base models:', [m.name for m in genai.list_models()])

Langkah berikutnya

Jika berhasil, Anda siap untuk mencoba Pengambilan semantik pada data teks.

Mengelola kredensial sendiri [Python]

Dalam banyak kasus, Anda tidak akan memiliki perintah gcloud yang tersedia untuk membuat token akses dari Client ID (client_secret.json). Google menyediakan library dalam banyak bahasa agar Anda dapat mengelola proses tersebut dalam aplikasi. Bagian ini menunjukkan prosesnya, dalam python. Ada contoh yang setara untuk jenis prosedur ini, untuk bahasa lain, yang tersedia di dokumentasi Drive API

1. Menginstal library yang diperlukan

Instal library klien Google untuk Python, dan library klien Gemini.

pip install --upgrade -q google-api-python-client google-auth-httplib2 google-auth-oauthlib
pip install google-generativeai

2. Menulis pengelola kredensial

Untuk meminimalkan berapa kali Anda harus mengklik layar otorisasi, buat file dengan nama load_creds.py di direktori kerja Anda untuk menyimpan cache file token.json yang dapat digunakan kembali nanti, atau memuat ulang jika sudah tidak berlaku.

Mulai dengan kode berikut untuk mengonversi file client_secret.json menjadi token yang dapat digunakan dengan genai.configure:

import os.path

from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/generative-language.retriever']

def load_creds():
    """Converts `client_secret.json` to a credential object.

    This function caches the generated tokens to minimize the use of the
    consent screen.
    """
    creds = None
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.json'):
        creds = Credentials.from_authorized_user_file('token.json', SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'client_secret.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.json', 'w') as token:
            token.write(creds.to_json())
    return creds

3. Menulis program

Sekarang buat script.py:

import pprint
import google.generativeai as genai
from load_creds import load_creds

creds = load_creds()

genai.configure(credentials=creds)

print()
print('Available base models:', [m.name for m in genai.list_models()])

4. Menjalankan program Anda

Di direktori kerja Anda, jalankan contoh:

python script.py

Saat pertama kali dijalankan, skrip akan membuka jendela browser dan meminta Anda untuk mengizinkan akses.

  1. Jika belum login ke Akun Google, Anda akan diminta untuk login. Jika Anda login ke beberapa akun, pastikan untuk memilih akun yang Anda tetapkan sebagai "Akun Pengujian" saat mengonfigurasi project.

  2. Informasi otorisasi disimpan dalam sistem file, sehingga saat berikutnya Anda menjalankan kode contoh, Anda tidak akan dimintai otorisasi.

Anda berhasil menyiapkan autentikasi.