JSON Web Token

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

Fleet Engine 必須使用 適用於來自 low-trust 的 API 方法呼叫的適當服務帳戶 環境。低信任的環境包括智慧型手機和瀏覽器。JWT 起源於您的伺服器,這也是值得信賴的環境JWT 簽署、加密並傳遞至用戶端,以供後續伺服器使用 互動,直到過期或不再有效。

您的後端應使用 標準的應用程式預設憑證機制。廠牌 請務必使用適當服務帳戶簽署的 JWT。換 服務帳戶角色清單,請參閱 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 Token 裝置,應包含 vehicleid 聲明或 deliveryvehicleid 使用該駕駛人車輛 ID 的值來聲明。接著: 視駕駛人角色而定,JWT 只能針對特定車輛授予存取權 而非其他任意車輛 ID。

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

隨選行程

  • vehicleid:
    • 駕駛 SDK 一律使用這項斷言,無論其是否為行程中皆然 或車輛Fleet Engine 後端可確保該車 與要求的行程相關聯。
    • 身為服務供應商,請使用「*」來使用這項索賠全部符合 。請注意,JWT 可涵蓋車輛和行程 這項作業可能會簡化 JWT 簽署程序 。
  • tripid:
    • Consumer SDK 一律使用這項聲明。
    • 身為服務供應商,您須以「*」使用這項宣告全部符合 行程。請注意,JWT 可涵蓋車輛和行程作業。 這可能會簡化符記簽署程序 。

已排定的工作

  • deliveryvehicleid

    呼叫每輛車/車時使用 相互整合

  • taskid

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

  • taskids

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

  • trackingid

    呼叫 GetTaskTrackingInfoAPI。聲明必須與追蹤項目相符 ID。請勿加入 delivervehicleidtaskidtaskids 項著作權聲明。

後續步驟