單點登入的微服務實現

2021-08-29 03:56:38 字數 1784 閱讀 3403

登入機制

粗略地分析, 登入機制主要分為登入驗證、登入保持、登出三個部分。登入驗證是指客戶端提供使用者名稱和密碼,向伺服器提出登入請求,伺服器判斷客戶端是否可以登入並向客戶端確認。 登入認保持是指客戶端登入後, 伺服器能夠分辨出已登入的客戶端,並為其持續提供登入許可權的伺服器。登出是指客戶端主動退出登入狀態。容易想到的方案是,客戶端登入成功後, 伺服器為其分配sessionid, 客戶端隨後每次請求資源時都帶上sessionid。

登入保持

在最原始的方案中, 登入保持僅僅靠伺服器生成的sessionid: 客戶端的請求中帶上sessionid, 如果伺服器的redis中存在這個id,就認為請求來自相應的登入客戶端。 但是只要sessionid被截獲, 請求就可以為偽造, 存在安全隱患。

引入token後,上述問題便可得到解決。 伺服器將token和其它的一些變數, 利用雜湊加密演算法得到簽名後,加密的方法有

#ldap.auth.password.encryption.algorithm=bcrypt

#ldap.auth.password.encryption.algorithm=md2

#ldap.auth.password.encryption.algorithm=md5

ldap.auth.password.encryption.algorithm=none

#ldap.auth.password.encryption.algorithm=sha

#ldap.auth.password.encryption.algorithm=sha-256

#ldap.auth.password.encryption.algorithm=sha-384

#ldap.auth.password.encryption.algorithm=ssha

#ldap.auth.password.encryption.algorithm=ufc-crypt

#ldap.auth.password.encryption.algorithm=pbkdf2withhmacsha1/160/128000

,連同sessionid一併傳送給伺服器; 伺服器取出儲存於伺服器端的token,利用相同的法則生成校驗簽名, 如果客戶端簽名與伺服器的校驗簽名一致, 就認為請求來自登入的客戶端。

其他:token的儲存

1.cookie 早些時候,本地儲存使用的是 cookie。但是web 儲存需要更加的安全與快速. 這些資料不會被儲存在伺服器上,但是這些資料只用於使用者請求**資料上.它也可以儲存大量的資料,而不影響**的效能.資料以 鍵/值 對存在, web網頁的資料只允許該網頁訪問使用。

2.localstorage - 沒有時間限制的資料儲存

3.sessionstorage - 針對乙個 session 的資料儲存(關閉視窗,儲存的資料清空)

介紹setitem和getitem,還有什麼removeitem刪除key、clear清除所有的key/value操作。

setitem儲存value

用途:將value儲存到key欄位

用法:.setitem( key, value)

**示例:

sessionstorage.setitem(「key」, 「value」); localstorage.setitem(「site」, 「js8.in」);

getitem獲取value

用途:獲取指定key本地儲存的值

用法:.getitem(key)

**示例:

var value = sessionstorage.getitem(「key」); var site = localstorage.getitem(「site」);

單點登入的微服務實現

粗略地分析,登入機制主要分為登入驗證 登入保持 登出三個部分。登入驗證是指客戶端提供使用者名稱和密碼,向伺服器提出登入請求,伺服器判斷客戶端是否可以登入並向客戶端確認。登入認保持是指客戶端登入後,伺服器能夠分辨出已登入的客戶端,並為其持續提供登入許可權的伺服器。登出是指客戶端主動退出登入狀態。容易想...

微服務安全 單點登入

一般過程如下 使用者向伺服器傳送使用者名稱和密碼。驗證伺服器後,相關資料 如使用者名稱,使用者角色等 將儲存在當前會話 session 中。伺服器向使用者返回session id,session資訊都會寫入到使用者的cookie。使用者的每個後續請求都將通過在cookie中取出session id傳...

Spring cloud 微服務實現流程

spring cloud是一系列框架的有序集合。它利用spring boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現註冊 配置中心 訊息匯流排 負載均衡 斷路器 資料監控等,都可以用spring boot的開發風格做到一鍵啟動和部署。spring並沒有重複製造輪子,它只是將目前各...