JSON Web Token

JSON Web Token (JWT) 是用於驗證的開放網路標準 以及授權用戶端與伺服器之間交換資訊。應用程式 使用者第一次以適當的角色憑證登入時,伺服器會建立 並傳回經過數位簽署的編碼 JWT,以用於後續要求。 這個程序同時驗證使用者並授權使用者存取路徑 建立的各項服務和資源。

對於從低信任環境發出的 API 方法呼叫,Fleet Engine 會規定 使用由適當服務帳戶簽署的 JSON Web Token (JWT)。 低信任的環境包括智慧型手機和瀏覽器。JWT 起源於您的伺服器,這也是值得信賴的環境JWT 簽署、加密並傳遞至用戶端,以供後續伺服器使用 互動,直到過期或不再有效。換 服務帳戶角色清單,請參閱 Fleet Engine 服務帳戶角色 詳情請參閱 Fleet Engine 基本概念一文。

相反地,後端應使用標準的應用程式預設憑證機制,針對 Fleet Engine 進行驗證及授權。

有別於 API 金鑰,JWT 生命週期短暫,且只能執行 有權執行該角色如要進一步瞭解 JWT,請參閱 JSON Web 維基百科上的符記。如要進一步瞭解存取權角色,請參閱服務 帳戶角色

JWT 元素

JWT 含有標頭和憑證附加資訊區段。標題區段包含 從服務帳戶取得的私密金鑰等資訊 加密演算法憑證附加資訊區段包含 JWT 的 建立時間、存留時間 (JWT 憑證附加服務) 以及其他授權資訊以界定存取權範圍的 例如貨車 ID

下表提供 JWT 欄位一般的描述性詳細資料。 以及可在何處找到 並在 Fleet Engine Cloud 專案中設定這些欄位

JWT 標頭欄位

欄位

說明

Alg

要使用的演算法。`RS256`。

typ

權杖類型。「JWT」。

兒童

服務帳戶的私密金鑰 ID。您可以在 private_key_id 欄位。廠牌 請務必使用具備正確權限層級的服務帳戶金鑰。

JWT 憑證附加資訊欄位

欄位

說明

iss

您的服務帳戶電子郵件地址 (可在 client_email 欄位。

替補球員

您的服務帳戶電子郵件地址 (可在 client_email 欄位。

aud

服務帳戶的 SERVICE_NAME, 本案例中為 https://fleetengine.googleapis.com/

iat

建立 JWT 時的時間戳記 (以秒為單位) 從 00:00:00 UTC, January 1, 1970 開始。請等候 10 分鐘,讓系統進行偏差。 如果時間戳記過於過去或未來的時間, 伺服器可能會回報錯誤。

exp

JWT 到期時的時間戳記,指定經過的秒數 自 00:00:00 UTC, January 1, 1970起。如果 時間戳記超過 1 個小時之後。

授權

視用途而定,可能包含 deliveryvehicleidtrackingidtaskidtaskids

如要指定 taskids,授權範圍必須是 形式:

"taskids": ["task_id_one","task_id_two"]

"taskids": ["*"]

Fleet Engine JWT 憑證附加資訊

Fleet Engine 使用私人憑證附加資訊。使用私人著作權聲明能確保 授權客戶存取自己的資料

舉例來說,當伺服器為駕駛人的行動裝置發出 JSON Web 權杖時,應包含 vehicleid 權杖或 deliveryvehicleid 權杖,並附上駕駛人的車輛 ID 值。接著,視駕駛員角色而定,JWT 只會啟用特定車輛 ID 的存取權,而不會啟用任何其他任意車輛 ID。

Fleet Engine 使用下列私人憑證附加資訊:

隨選行程

  • vehicleid
    • 無論是針對行程或車輛運作,Driver SDK 一律會使用這項聲明。車隊引擎後端會在修改前,確認車輛與要求的行程相關聯。
    • JWT 可涵蓋車輛和行程 這項作業可能會簡化 JWT 簽署程序 。
  • tripid:
    • Consumer SDK 一律使用這項聲明。
    • JWT 可涵蓋車輛和行程作業 這可能會簡化符記簽署程序 。

已排定的工作

  • deliveryvehicleid

    呼叫每個發布管道 API 時使用。

  • taskid

    呼叫個別工作的 API 時使用。

  • taskids

    撥打電話時使用 BatchCreateTasksAPI。此著作權聲明必須以陣列格式表示。 而且陣列應包含完成 請求。請勿加入 delivervehicleidtrackingidtaskid 項著作權聲明。

  • trackingid

    呼叫 GetTaskTrackingInfoAPI。聲明必須與要求中的追蹤 ID 相符。請勿加入 delivervehicleidtaskidtaskids 聲明。

後續步驟