日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

基于JSON Web Tokens的单点登录(SSO)或通行证(Passport)系统方案

發布時間:2024/2/28 windows 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于JSON Web Tokens的单点登录(SSO)或通行证(Passport)系统方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先簡要介紹一下什么JWT(JSON Web Token)。

JWT是一種開放的,工業標準的規范,用于在兩個應用之間安全地傳輸信息。

JWT由3個部分組成,分別是頭部、載荷、簽名。

頭部部分

{
? "alg": "HS256",
? "typ": "JWT"
}

alg描述的是簽名算法。


載荷部分

{
? "iss": "發行者",
? "sub": 主題",
? "aud": “觀眾”,

? "exp":"過期時間",

? "iat":"簽發時間"

以下可以添加自定義數據

? ? "userid":"11111",

? ? “realname":"真實姓名",

? ? "email":"",
}

Base64算法是可逆的,不可以在載荷部分保存用戶密碼等敏感信息。如果業務需要,也可以采用對稱密鑰加密。


簽名部分

HMACSHA256(Base64(Header) + "." + Base64(Payload), ?secret)

簽名的目的是用來驗證頭部和載荷是否被非法篡改。

驗簽過程描述:讀取Header部分并Base64解碼,得到簽名算法。根據以上方法算出簽名,如果簽名信息不一致,說明是非法的。


JWT的基本原理介紹完畢,接下來描述如何基于JWT設計單點登錄系統。

假設現在有系統www.example.com, passport.example.com.

用戶首先訪問passport.example.com,在表單輸入用戶名和密碼,通過HTTPS Post提交請求到后端認證服務,后端認證服務查詢用戶數據庫完成用戶認證。

用戶 認證成功后,假設只在Payload部分保存userid,生成Token ( Base64(header) + "." + Base64(payload) + "." + Base64(sign) ),作為cookie返回給客戶端,

cookie保存在根域example.com。

用戶訪問www.example.com,會自動帶上Token cookie。

后端服務需要完成Token的驗簽,過期時間判斷等操作。驗證成功就可以讀取Payload信息完成接下來的業務功能。



參考資料

https://jwt.io/


總結

以上是生活随笔為你收集整理的基于JSON Web Tokens的单点登录(SSO)或通行证(Passport)系统方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。