繁體中文

開發者工具 · JWT 解碼器

七個已註冊的 JWT 宣告:iss、sub、aud、exp、nbf、iat 和 jti

· 背景

jwt 資料格式 身份驗證

七個註冊的 JWT 宣告標籤排列在有效負載物件內
原始 ToolAcre 向量圖

RFC 7519 保留七個具有定義意義和類型的宣告名稱。這篇文章解釋了每種類型、它們背後的 StringOrURI 和 NumericDate 類型,以及註冊、公開和私人宣告如何共存。

我應該使用哪些宣告名稱? — 註冊機構回答的設計問題

選擇宣告名稱部分是互通性決策。重複使用已註冊的名稱可以為讀者和圖書館提供既定的含義,而特定於應用程式的名稱則需要本地檔案。 ToolAcre 可識別其描述表中的七個核心名稱,並使其他宣告可見,而無需分配語義。

熟悉的名字並非自動值得信賴。解碼器讀取令牌包含的任何對象,但從不驗證其簽章。註冊詞彙可以幫助人類對資料進行分類;只有受信任的驗證者才能確定發行者提供了受保護的值。

iss 和 sub 顯示為字串;此實作不強制 StringOrURI 語法

`iss` 標識令牌宣告是誰頒發的,`sub` 標識它的物件是誰或什麼。 ToolAcre 描述這兩者並顯示它們的值,但其實作不會驗證 StringOrURI 語法或將任一欄位與服務配置進行比較。

驗證者應將預期的發行者綁定到受信任的密鑰材料,並在該發行者的命名空間下解釋主題。將已知的發行者字串複製到偽造的有效負載中,使解碼器看起來令人信服,而無需確定來源。僅在加密驗證後才使用這些欄位。

aud — 預期接收者,作為字串或陣列

`aud` 描述了預期的接收者,並可以根據適用的令牌規則表示為一個值或一個清單。 ToolAcre 的通用宣告表將陣列保留為 JSON 文字,但不決定目前服務是否出現在其中。

受眾是上下文相關的。相同的經過驗證的令牌可能適用於一個 API,但不適用於另一個 API。資源伺服器需要可信任配置中的預期標識符,並必須拒絕不匹配,而不是讓令牌定義應該接受的位置。

exp、nbf 和 iat — 及時綁定令牌的三個 NumericDate 宣告

`exp`、`nbf` 和 `iat` 是 NumericDate 宣告。 ToolAcre 將有限數字視為自紀元以來的秒數,乘以 1,000 以顯示日期,並標記相對於瀏覽器時鐘的到期或不早於日期。它不定義迴旋餘地或強制伺服器接受。

到期標誌著宣告的結束邊界,而不是令牌曾經有效的證明。 Not-before 標記宣告的開始邊界,issued-at 記錄宣告的建立時間。每個都可以在有效負載中偽造,因此時間算術必須遵循可信任流程中的簽名驗證。

jti — 用於重播偵測和拒絕清單的唯一識別符

`jti` 是令牌標識符。系統可以使用經過驗證的、適當產生的識別碼來進行重播追蹤或撤銷狀態,但單獨的宣告不提供任何屬性。 ToolAcre 將其描述為用於重播偵測的令牌 ID,並顯示其準確值。

唯一性、儲存和尋找行為屬於發行者和驗證者架構。解碼器無法確定另一個令牌是否重複使用了該標識符,或拒絕清單是否包含該標識符。將其視為候選相關值,直到周圍的可信系統提供證據。

ToolAcre 顯示中的註冊描述和特定於應用程式的宣告

此實作僅透過解釋性文字來區分註冊名稱。每個負載屬性仍然由 `listClaims` 傳回;未知名稱收到空描述,並 UI 將其標記為特定於應用程式。它不諮詢公共註冊表或防止私有名稱衝突。

此邊界避免宣告超出來源證明的內容。當互通性很重要時,團隊應該記錄他們的私人宣告並選擇抗衝突的名稱。解碼器缺少描述意味著“不在這個本地七名表中”,而不是“無效”或“可以安全忽略”。

工作範例 — 讀取實際有效負載並對每個宣告進行分類

考慮 `{"iss":"https://issuer.example","sub":"user-7","aud":["orders"],"exp":1717246800,"nbf":1717243100,"iat":1717243200,"jti":"demo-9","tenant":"north"}`。 ToolAcre 描述了七個註冊欄位和標籤 `tenant` 應用程式特定的同時格式化三個數字時間。

此分類有助於檢視有效負載設計。它不會驗證 URL、主題、受眾、日期、識別碼或租戶。偽造的令牌可以準確地複製該物件。僅將經過驗證的宣告送入授權邏輯,然後套用消費服務的預期值。

重點:在適當時使用註冊名稱 — ToolAcre JWT 解碼器顯示有效負載,以便您可以看到真正的發行者設定了哪些宣告

當定義的含義合適時使用註冊名稱,因為可識別的詞彙可以減少不必要的翻譯。保持私有欄位的記錄和最小化。不要因為下游程式碼已經解析該金鑰而重載 `sub`、`aud` 或具有不同本地意義的時間宣告。

ToolAcre 可以顯示安全令牌攜帶哪些名稱以及其數字宣告如何呈現。它不能證明任何價值。解碼的有用結果是供審查的清單;核查和政策的有用結果是一項決定,但它們仍然是分開的。