【Http基本認證】

lijieshare發表於2017-12-30

HTTP請求報頭: Authorization

HTTP響應報頭: WWW-Authenticate

 

HTTP認證  基於   質詢  /迴應(  challenge/response)的認證模式。

 

基本認證 basic authentication   ← HTTP1.0提出的認證方法

    客戶端對於每一個realm,通過提供使用者名稱和密碼來進行認證的方式。

    包含密碼的明文傳遞

 

基本認證步驟:

 1. 客戶端訪問一個受http基本認證保護的資源。

 2. 伺服器返回401狀態,要求客戶端提供使用者名稱和密碼進行認證。

  401 Unauthorized

  WWW-Authenticate: Basic realm="WallyWorld"

 3. 客戶端將輸入的使用者名稱密碼用Base64進行編碼後,採用非加密的明文方式傳送給伺服器。

  Authorization: Basic xxxxxxxxxx.

 4. 如果認證成功,則返回相應的資源。如果認證失敗,則仍返回401狀態,要求重新進行認證。

 

特記事項:

 1. Http是無狀態的,同一個客戶端對同一個realm內資源的每一個訪問會被要求進行認證。

 2. 客戶端通常會快取使用者名稱和密碼,並和authentication realm一起儲存,所以,一般不需要你重新輸入使用者名稱和密碼。

 3. 以非加密的明文方式傳輸,雖然轉換成了不易被人直接識別的字串,但是無法防止使用者名稱密碼被惡意盜用。



 

HTTP的兩個官方的認證協議:基本認證和摘要認證

認證的四個步驟:

請求: 客戶端發起一條請求;第一條請求沒有認證訊息;

質詢: 伺服器對客戶端進行質詢;返回一條401 Unauthorized響應,並在www-Authenticate首部說明如何以及在哪裡進行認證;一般指定對哪個安全域進行認證;

授權:客戶端收到401質詢,彈出對話方塊,詢問使用者名稱和密碼,使用者輸入使用者名稱和密碼後,客戶端會用一個冒號將其連線起來,編碼成“經過擾碼的”Base-64表示形式,然後將其放在Authorization首部中回送;

成功: 伺服器對使用者名稱和密碼進行解碼,驗證它們的正確性,然後用一條HTTP 200 OK報文返回所請求的報文;

 

相關文章