JWT - The first sight
JWT 是JSON web Token的縮寫,format輕巧又易於跨domain間傳輸,適合restful API這種stateless原則。
JWT 是一個字串,透過.切分成三個 base 64編碼
- Header: Token總類與演算法,include token type, hash algorithm,
- payload: 使用者相關資訊user information,可以設定expired time, 簽發token時間
- Signature: 簽章calculate from header, payload and self generated key
驗證流程如下
- Client 經由任何一種方式跟Auth Service做驗證
- Auth service 回傳JWT token給Client
- Client 能用該JWT 去call 其他有授權給該token的service
加密的細節在於,Auth service會用自己的private key對user 傳來的header, payload做加密。因此即便使用者解開jwt token並修改payload內容,除了沒有auth service上的private key可以重新encrypt, 加密出來的結果不會ㄓvalidate。不過Token一但被竊取就會被盜用,因此需要搭配expired time來減少風險,並且使用情境減少與安全議題相關的授權操作。
reference:
留言
張貼留言