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 專案中設定這些欄位
欄位 |
說明 |
---|---|
Alg |
要使用的演算法。`RS256`。 |
typ |
權杖類型。「JWT」。 |
兒童 |
服務帳戶的私密金鑰 ID。您可以在
|
欄位 |
說明 |
---|---|
iss |
您的服務帳戶電子郵件地址 (可在
|
替補球員 |
您的服務帳戶電子郵件地址 (可在
|
aud |
服務帳戶的 |
iat |
建立 JWT 時的時間戳記 (以秒為單位)
從 00:00:00 |
exp |
JWT 到期時的時間戳記,指定經過的秒數
自 |
授權 |
視用途而定,可能包含 如要指定 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
。此著作權聲明必須以陣列格式表示。 而且陣列應包含完成 請求。請勿加入delivervehicleid
,trackingid
或taskid
項著作權聲明。 -
trackingid
呼叫
GetTaskTrackingInfoAPI
。聲明必須與要求中的追蹤 ID 相符。請勿加入delivervehicleid
、taskid
或taskids
聲明。
後續步驟
- 參閱 Fleet Engine 安全性設計,瞭解完整 驗證流程
- 瞭解如何從伺服器發出 JSON Web Token。