1. 程式人生 > >認證模式之Spnego模式

認證模式之Spnego模式

net .net cat 嵌入 微軟 gravity 使用 user 了解

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

技術分享

①client依據自己username向密鑰分發中心KDC的身份認證服務AS請求TGS票證。

AS生成一個TGS票證、查詢相應用戶的password,然後通過用戶password將TGS票證加密,響應給client。

③client通過用戶password解密TGS票證。假設password正確就能獲取到TGS票證,然後用TGS票證去票證授予服務TGS請求服務票證。

TGS將服務票證響應給client。

⑤client使用服務票證去訪問某服務,服務驗證服務票據是否合法。

⑥驗證通過,開始通信。

在了解了Kerberos協議後,我們再來看看Spnego的認證過程是如何的。因為spnego擴展自kerberos協議。認證的核心流程一樣,僅僅是在瀏覽器與webserver之間的http通信過程中嵌入認證流程。例如以下圖:

技術分享

①client瀏覽器向webserver發送http請求。

②server返回401狀態碼,響應頭部加上 WWW-Authenticate:Negotiate

③用戶通過瀏覽器輸入username向AS請求TGS票證。

AS生成TGS票證,然後查詢用戶password並用此password加密

TGS票證,返回瀏覽器。

⑤瀏覽器使用用戶password解密出TGS票證,並向TGS服務發起請求。

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

⑦瀏覽器將服務票證封裝到SPNEGO token中。並發送給webserver。

⑧server解密出username及服務票證,將票證發往TGS服務驗證。

⑨通過驗證。開始通信。

認證模式之Spnego模式