Token Web JSON

JSON Web Token (JWT) adalah standar web terbuka yang digunakan untuk mengotentikasi dan otorisasi untuk mempertukarkan informasi antara klien dan server. Saat aplikasi pertama kali pengguna masuk dengan kredensial peran yang sesuai, server membuat dan mengembalikan JWT yang dienkode dan ditandatangani secara digital untuk digunakan dengan permintaan berikutnya. Proses ini mengotentikasi pengguna dan mengotorisasi mereka untuk mengakses rute, layanan, dan resource berdasarkan peran akun mereka.

Fleet Engine memerlukan penggunaan Token Web JSON (JWT) yang ditandatangani oleh akun layanan yang sesuai untuk panggilan metode API dari low-trust lingkungan fleksibel. Lingkungan kepercayaan rendah mencakup smartphone dan browser. JWT berasal dari server Anda, yang merupakan lingkungan yang sepenuhnya tepercaya. JWT ditandatangani, dienkripsi, dan diteruskan ke klien untuk selanjutnya interaksi hingga kedaluwarsa atau tidak lagi valid.

Backend Anda harus melakukan autentikasi dan otorisasi terhadap Fleet Engine menggunakan mekanisme Kredensial Default Aplikasi standar. Merek pastikan untuk menggunakan JWT yang telah ditandatangani oleh akun layanan yang sesuai. Untuk daftar peran akun layanan, lihat peran akun layanan Fleet Engine di Dasar-Dasar Armada Engine.

Tidak seperti kunci API, JWT berumur pendek dan membatasi operasi hanya untuk yang berwenang untuk menjalankan peran tersebut. Untuk informasi selengkapnya tentang JWT, lihat Web JSON Token di Wikipedia. Untuk mengetahui detail tentang peran akses, lihat Layanan peran akun dalam panduan ini.

Elemen JWT

JWT berisi header dan bagian klaim. Bagian {i>header <i}berisi informasi seperti kunci pribadi yang diperoleh dari akun layanan, dan algoritma enkripsi. Bagian klaim berisi informasi seperti informasi menciptakan waktu, waktu aktif, layanan yang diklaim JWT akses ke, dan informasi otorisasi lainnya untuk akses cakupan; untuk misalnya, ID kendaraan pengiriman.

Tabel berikut memberikan detail deskriptif tentang {i>field <i}JWT secara umum, serta informasi spesifik tentang di mana Anda dapat menemukan nilai untuk di project Cloud Fleet Engine Anda.

Kolom header JWT

Kolom

Deskripsi

alg

Algoritma yang akan digunakan. `RS256`.

ketik

Jenis token. `JWT`.

anak

ID kunci pribadi akun layanan Anda. Anda dapat menemukan nilai ini di kolom Kolom private_key_id file JSON akun layanan Anda. Merek pastikan untuk menggunakan kunci dari akun layanan dengan tingkat izin yang benar.

JWT mengklaim kolom

Kolom

Deskripsi

iss

Alamat email akun layanan Anda, dapat ditemukan di Kolom client_email file JSON akun layanan Anda.

sub

Alamat email akun layanan Anda, dapat ditemukan di Kolom client_email file JSON akun layanan Anda.

aud

SERVICE_NAME akun layanan Anda, dalam hal ini https://fleetengine.googleapis.com/

Iat

Stempel waktu saat JWT dibuat, yang ditentukan dalam detik telah berlalu sejak pukul 00.00.00 UTC, January 1, 1970. Tunggu 10 menit untuk kemiringan. Jika stempel waktu terlalu jauh di masa lalu, atau di masa mendatang, server mungkin melaporkan error.

exp

Stempel waktu saat JWT berakhir, yang ditentukan dalam detik berlalu sejak 00:00:00 UTC, January 1, 1970. Permintaan akan gagal jika stempel waktu lebih dari satu jam pada masa mendatang.

authorization

Tergantung pada kasus penggunaannya, dapat berisi deliveryvehicleid, trackingid, taskid, atau taskids.

Klaim JWT Fleet Engine

Fleet Engine menggunakan klaim pribadi. Menggunakan klaim pribadi memastikan bahwa hanya klien yang diotorisasi dapat mengakses data mereka sendiri.

Misalnya, saat server Anda menerbitkan Token Web JSON untuk ponsel pengemudi perangkat tersebut, harus berisi klaim vehicleid atau Klaim deliveryvehicleid dengan nilai ID kendaraan pengemudi tersebut. Lalu: tergantung pada peran pengemudi, JWT memungkinkan akses hanya untuk kendaraan tertentu ID dan bukan ID kendaraan arbitrer lainnya.

Fleet Engine menggunakan klaim pribadi berikut:

Perjalanan on-demand

  • vehicleid:
    • Driver SDK selalu menggunakan klaim ini, baik saat beroperasi dalam perjalanan atau kendaraan. Backend Fleet Engine memastikan bahwa kendaraan yang terkait dengan perjalanan yang diminta sebelum melakukan modifikasi.
    • Sebagai penyedia layanan, Anda menggunakan klaim ini dengan "*" untuk mencocokkan semua yang unik. Perhatikan bahwa JWT dapat mencakup kendaraan dan perjalanan operasi tambahan, meskipun tidak diperlukan, yang dapat menyederhanakan penandatanganan JWT terlepas dari implementasi layanan.
  • tripid:
    • Consumer SDK selalu menggunakan klaim ini.
    • Sebagai penyedia layanan, Anda menggunakan klaim ini dengan "*" untuk mencocokkan semua perjalanan. Perhatikan bahwa JWT dapat mencakup operasi kendaraan dan perjalanan, meskipun tidak diperlukan, yang dapat menyederhanakan penandatanganan token terlepas dari implementasi layanan.

Tugas terjadwal

  • deliveryvehicleid

    Gunakan saat menelepon per kendaraan pengiriman Google Cloud Platform.

  • taskid

    Gunakan saat memanggil API per tugas.

  • taskids

    Gunakan saat menelepon BatchCreateTasksAPI. Klaim ini harus dalam bentuk array, dan array harus berisi semua ID tugas yang diperlukan untuk menyelesaikan permintaan. Jangan sertakan delivervehicleid, trackingid, atau taskid klaim.

  • trackingid

    Gunakan saat memanggil GetTaskTrackingInfoAPI. Klaim harus cocok dengan pelacakan ID tertentu dalam permintaan. Jangan sertakan delivervehicleid, taskid, atau taskids klaim.

Langkah berikutnya