如何為你的網站設計一個安全的web API訪問?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
當我們向用戶開放web API訪問時,我們需要確保每個API調用都是經過身份驗證的,這意味著用戶必須是他們聲稱的那個人。
在這篇文章中,我們將探討兩種常見的方法:
1、基于Token(令牌)的身份驗證
2、基于HMAC(哈希消息認證碼)的身份驗證
下面的圖表說明了它們的工作原理:
1、基于Token(令牌):
第1步:用戶向客戶端輸入密碼,客戶端將密碼發(fā)送給認證服務器。
第2步:身份驗證服務器驗證憑據(jù)并生成一個有過期時間的令牌。
第3步和第4步:現(xiàn)在客戶端可以發(fā)送請求來訪問HTTP頭中的令牌服務器資源,此訪問在令牌過期前有效。
2、基于HMAC(哈希消息認證碼):
該機制通過哈希函數(shù)(SHA256或MD5)生成消息認證碼(簽名)。
步驟1和步驟2:服務器生成兩個密鑰,一個是Public APP ID(公鑰),另一個是API key(私鑰)。
步驟3:我們現(xiàn)在在客戶端生成一個HMAC簽名(HMAC a),這個簽名是用圖表中列出的一組屬性生成的。
步驟4:客戶端使用HTTP頭中的hmac A發(fā)送訪問服務器資源的請求。
步驟5:服務器接收包含請求數(shù)據(jù)和認證頭的請求,它從請求中提取必要的屬性,并使用存儲在服務器端的API密鑰來生成簽名(hmac b)。
步驟6和7:服務器端比較hmac A(在客戶端生成)和hmac B(在服務器端生成),如果匹配,則將請求的資源返回給客戶端。
問題思考:
HMAC認證如何確保數(shù)據(jù)完整性?
為什么我們在HMAC簽名生成中包含“請求時間戳”? 該文章在 2022/8/10 12:40:35 編輯過 |
關鍵字查詢
相關文章
正在查詢... |