我混淆了基本的http授權。需要發送每個請求到服務器Authorization
頭或只是第一個,然後瀏覽器重新認證令牌像會話ID?是否需要在基本身份驗證的任何請求中傳遞用戶名:密碼組合?
回答
您必須在每個請求上發送授權標頭。但是例如Chrome會記住這些驗證令牌並在每個請求中自動發送。
這是正確的,所以當用戶第一次登錄時,他的憑據會根據某些數據進行驗證,如果正確,則會生成身份驗證令牌。
身份驗證令牌是相當多的自包含的實體(其存儲與關鍵簽署了一些數據) 所有後續請求
該令牌在客戶端(通常伴隨着一個刷新令牌)獲取店,此令牌保存在授權頭(承載+令牌)
當服務器接收到該令牌時,它使用它先前用來簽署該令牌的密鑰對其解密。並使用存儲的數據
如果該認證令牌已過期,則刷新令牌將發揮作用。
一些鏈接與 On a high level, how does OAuth 2 work? 開始和jwt.io獲得令牌
問題是關於基本認證。你的答案是關於基於令牌的認證。這是兩件完全不同的事情。 – MvdD
似乎你是正確的,從你的答案中學到了一些東西,謝謝 –
使用基本身份驗證的感覺,每個請求都需要有格式的Authorization
HTTP標頭:
Authorization: Basic <base64(username:password)>
用戶名和密碼使用冒號(':')連接在一起,結果字符串爲base64 encoded。
如果授權報頭是不請求的一部分,或內部的憑證無效,服務器應用HTTP 401未授權響應來響應,並且包括HTTP報頭,如:
WWW-Authenticate: Basic realm="myRealm"
基本驗證是一個implicit authentication scheme,所以在用戶輸入有效的憑證後,瀏覽器會將它們與每個頁面請求一起發送。
對於AJAX請求,您需要從代碼中附加此標頭。但是,你真的不應使用基本身份驗證來保護API,對於一些原因:
- 你會強迫客戶端持有的代碼,在那裏他們可以很容易被竊取的憑證。
- 您必須使用基本身份驗證的HTTPS,因爲base64編碼完全不提供任何憑據保護。
- 用戶名/密碼組合通常比訪問令牌有效的時間長得多,從而增加了被盜時的風險。
- 密碼驗證應該是緩解暴力攻擊的緩慢過程,其中令牌驗證只是驗證數字簽名。
- 每次通過線路發送用戶名/密碼都會增加試圖破解加密的人的攻擊面。
更好的替代品,以保護網絡的API token based authentication schemes像OAuth2或基於HMAC認證方案像Hawk或AWS
- 1. 基本身份驗證用戶名/密碼需要多長時間?
- 2. SourceTree - Mercurial - 身份驗證 - 每次請求用戶名和密碼?
- 3. OAuth 2.0身份驗證碼授權 - 是否有任何要求身份驗證用戶請求身份驗證代碼
- 4. 將基本身份驗證用戶名傳遞給shell腳本
- 5. 身份驗證要求輸入用戶名和密碼http:// www
- 6. GlassFish身份驗證基本用戶名和密碼
- 7. GlasshFish基本身份驗證默認用戶名和密碼
- 8. Neo4j的基本身份驗證請求
- 9. iis身份驗證用戶名密碼
- 10. 強制Google OAuth在驗證用戶身份時請求用戶名/密碼
- 11. 身份驗證的Active Directory用戶沒有要求的用戶名和密碼
- 12. 如何在Frisby中傳遞基本身份驗證和發佈請求?
- 13. 使用用戶名/密碼在url中的Apache基本身份驗證
- 14. 如何在php中傳遞HTTP基本身份驗證的值(用戶名和密碼)
- 15. ASP.NET MVC中WIF(Windows身份基礎)的用戶名和密碼身份驗證
- 16. 是否需要Firebase雲消息傳遞身份驗證?
- 17. 要求經過身份驗證的用戶更改密碼
- 18. 如何跟蹤其餘請求的身份驗證參數(用戶名/密碼)
- 19. 魷魚聯合IP,用戶名和密碼的身份驗證
- 20. 將xml請求中的用戶名和密碼傳遞給wcf服務進行身份驗證?
- 21. 在Angular中使用http $進行基本身份驗證 - 傳遞用戶名/密碼和grant_type
- 22. 無需輸入用戶名和密碼進行身份驗證
- 23. 使用基本身份驗證來傳遞身份驗證令牌
- 24. 春季安全:不需要身份驗證本地請求
- 25. Symfony2:AJAX請求:如何在需要時處理身份驗證?
- 26. Jconsole基於密碼的身份驗證
- 27. 如何在webservice中傳遞基本身份驗證?
- 28. 如何在mysqldb python包中傳遞基本身份驗證?
- 29. 在不驗證用戶身份的情況下驗證用戶名和密碼
- 30. 在swift中獲取基本身份驗證的請求3
取決於如果服務器會話持久性與否。這不是基本認證規範的一部分。 –