天天看點

認證模式之Spnego模式

Spnego模式是一種由微軟提出的使用GSS-API接口的認證模式,它擴充了Kerberos協定,在了解Spnego協定之前必須先了解Kerberos協定,Kerberos協定主要解決身份認證及通信密鑰協商問題,它大緻的工作流程如下:

認證模式之Spnego模式

①用戶端根據自己使用者名向密鑰分發中心KDC的身份認證服務AS請求TGS票證。

②AS生成一個TGS票證、查詢對應使用者的密碼,然後通過使用者密碼将TGS票證加密,響應給用戶端。

③用戶端通過使用者密碼解密TGS票證,如果密碼正确就能擷取到TGS票證,然後用TGS票證去票證授予服務TGS請求服務票證。

④TGS将服務票證響應給用戶端。

⑤用戶端使用服務票證去通路某服務,服務驗證服務票據是否合法。

⑥驗證通過,開始通信。

在了解了Kerberos協定後,我們再來看看Spnego的認證過程是怎樣的。由于spnego擴充自kerberos協定,認證的核心流程一樣,隻是在浏覽器與web伺服器之間的http通信過程中嵌入認證流程。如下圖:

認證模式之Spnego模式

①用戶端浏覽器向web伺服器發送http請求。

②伺服器傳回401狀态碼,響應頭部加上 WWW-Authenticate:Negotiate。

③使用者通過浏覽器輸入使用者名向AS請求TGS票證。

④AS生成TGS票證,然後查詢使用者密碼并用此密碼加密TGS票證,傳回浏覽器。

⑤浏覽器使用使用者密碼解密出TGS票證,并向TGS服務發起請求。

⑥TGS服務生成服務票證響應給浏覽器。

⑦浏覽器将服務票證封裝到SPNEGO token中,并發送給web伺服器。

⑧伺服器解密出使用者名及服務票證,将票證發往TGS服務驗證。

⑨通過驗證,開始通信。

========廣告時間========鄙人的新書《Tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 https://item.jd.com/12185360.html 進行預定。感謝各位朋友。[為什麼寫《Tomcat核心設計剖析》](http://blog.csdn.net/wangyangzhizhou/article/details/74080321)=========================歡迎關注:![這裡寫圖檔描述](http://img.blog.csdn.net/20170509102539658?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FuZ3lhbmd6aGl6aG91/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

繼續閱讀