基於權杖的驗證是確認使用者或裝置身分的一種方法。它依賴於檢查相關實體是否擁有之前簽發的權杖。
閱讀本文後,您將能夠:
複製文章連結
基於權杖的驗證是透過檢查權杖來驗證身分的過程。在存取管理中,伺服器使用權杖驗證來檢查使用者、API、電腦或其他伺服器的身分。
權杖是由受信任的來源頒發的象徵性物品——類似於執法人員攜帶由其機構頒發的徽章,以使其權威合法化。權杖可以是實體的(如 USB 硬金鑰),也可以是數位的(電腦產生的訊息或數位簽名)。
基於權杖的驗證可以指幾個不同的過程:
透過實體權杖的驗證通常在使用者登入過程中進行。使用者必須證明他們擁有其他人沒有的物品。他們可以透過輸入該物品顯示的程式碼、透過 USB 將物品連接到裝置、透過藍牙連接物品或其他幾種方法來證明這一點。就像輸入密碼證明使用者知道其他人不知曉的內容一樣,使用權杖證明使用者擁有僅該使用者才有的物品。
有兩種權杖用於這種類型的驗證:軟體權杖和硬體權杖。
網路權杖是數位的,而不是實體物品。它是從伺服器傳送到用戶端並由用戶端臨時儲存的訊息。用戶端在傳送到伺服器的後續請求中包含權杖的複本,以確認用戶端的驗證狀態。
實體權杖驗證會在登入過程中驗證身分,而 Web 權杖則作為成功登入的結果發佈。它們使登入工作階段保持作用中狀態。
但是,將 Web 權杖用於使用者工作階段並非總是理想的。許多開發人員都支援使用 Cookie。Web 權杖可能更適用於 API 端點驗證或驗證伺服器之間的連線,而不是伺服器與用戶端之間的連線。
在 Web 開發中,「Web 權杖」幾乎總是指JSON Web 權杖。JSON Web 權杖 (JWT) 是用於建立包含 JavaScript 物件標記法 (JSON) 資料的數位簽名 Web 權杖的標準。伺服器建立一個權杖來證明用戶端的身分並將其傳送到用戶端。JWT 使用數位簽名來證明權杖是合法的。
JWT 包括三個元件:
JWT 有時用於在使用者登入 Web 應用程式後保持其身分已通過驗證。但是,Cookie 也可以用於此目的。
Cookie 是伺服器傳送到用戶端的小型資料檔案。當使用者登入到 Web 應用程式時,伺服器會產生一個 Cookie 並將其傳送到用戶端裝置(通常是使用者的電腦或智慧型手機)。用戶端裝置將 Cookie 儲存在瀏覽器的快取中,並在之後對伺服器的請求中包含 Cookie 的複本,類似於 JWT 的使用方式。使用者登出后,瀏覽器將刪除 Cookie。
與 JWT 相比,Cookie 的檔案要小得多,因為 JWT 除了裝載外,還包括標頭和數位簽名。相比之下,Cookie 僅包含裝載。這使得它們在 Web 效能和頻寬方面效率更高。
JWT 未針對效能進行最佳化,因為它們包含數位簽名,可確保其內容未被篡改。但是,如果 Web 應用程式使用 HTTPS(它應當如此),那麼 Cookie 無論如何都應該是防篡改的。HTTPS 將對 cookie 以及用戶端和伺服器之間交換的所有其他 HTTP 資料進行加密和簽名,攻擊者應該無法偽造它或在傳輸過程中攔截它,除非他們進行中間人攻擊。
JWT 更適合 API 和伺服器到伺服器連線。此類用途不需要過多擴展:一個 Web 應用程式可能會獲得一百萬使用者,但它不會有一百萬個 API 連線。這減少了對效能和頻寬的潛在影響。但是,其他驗證方法(如相互 TLS)有時對 API 更有效——詳細瞭解相互 TLS。
銷售
關於存取管理