來源
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
《微服務架構實戰160講》
OAuth2授權認證中心
1 解決的問題
資源擁有者將資源存儲在雲服務上,需要通過第三方應用來訪問此資源進行一些操作,怎麼做?
-
密碼用戶名複製
適合公司內部使用,開發系統間不太安全 -
萬能鑰匙
協商一個developerKey,也是不太安全 -
特殊令牌
這種跟OAuth2就很接近了
2 簡易流程
獲取數據的流程:
OAuth2的體現:
3 四種典型模式
授權碼模式、簡化模式、密碼模式、客戶端模式(docker拉取鏡像):http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
簡化模式:C中獲取到token,直接發起請求即可
選型:
4 刷新令牌
A中使用的就是四種典型模式 之一獲取的token,如授權碼模式
5 JWT令牌
屬於自包含令牌,由授權服務器頒發的令牌,包含關於用戶或者客戶的元數據和聲明(claims)
通過檢查簽名,期望的頒發者(issuer) (issuer) (issuer),期望的接收人 aud(audience),或者 scope , 資源服務器可以在本地校驗令牌通常實現爲簽名的 JSON Web Tokens(JWT)。不需要去授權服務器校驗
分爲三部分:Header標識類型爲JWT,使用了什麼算法進行簽名;Claims提供了額外的信息,資源服務器拿到這些信息可以做相應的授權等操作;Signature就是簽名
6 OpenID Connect
基於 OAuth2之上構建的簡單身份認證層:
7 微服務安全架構
方案一:token+jwt
方案二:jwt;減少授權服務器的壓力,但是少了靈活性,如無法集中到授權服務器吊銷,只能等待自然過期
方案三:token+jwt+redis;這樣授權服務器壓力也小,也靈活