如何設計安全的 Web API

如何設計安全的 Web API

當我們向用戶開放 Web API 訪問時,我們需要確保每個 API 調用都經過身份驗證。 這意味着用戶必須是他們聲稱的人。

在這篇文章中,我們探討了兩種常見的方法:

1. 基於令牌的身份驗證

2. HMAC(基於哈希的消息認證碼)認證

securityapi

下圖說明了它們的工作原理。

基於Token
步驟 1 - 用戶在客戶端輸入密碼,客戶端將密碼發送到身份驗證服務器。

第 2 步 - 身份驗證服務器對憑據進行身份驗證並生成帶有到期時間的Token。

步驟 3 和 4 - 現在客戶端可以使用 HTTP 標頭中的令牌發送訪問服務器資源的請求。 此訪問權限在Token過期之前一直有效。

基於HMAC
該機制通過使用哈希函數(SHA256 或 MD5)生成消息認證碼(簽名)。

步驟1和2 - 服務器生成兩個密鑰,一個是Public APP ID(公鑰),另一個是API Key(私鑰)。

步驟 3 - 我們現在在客戶端生成 HMAC 簽名 (hmac A)。 該簽名是使用圖中列出的一組屬性生成的。

步驟 4 - 客戶端發送請求以訪問服務器資源,並在 HTTP 標頭中包含 hmac A。

步驟 5 - 服務器接收包含請求數據和身份驗證標頭的請求。 它從請求中提取必要的屬性,並使用存儲在服務器端的 API 密鑰來生成簽名 (hmac B.)

步驟 6 和 7 - 服務器比較 hmac A(在客戶端生成)和 hmac B(在服務器端生成)。 如果匹配,則將請求的資源返回給客戶端。


今天先到這兒,希望對雲原生,技術領導力, 企業管理,系統架構設計與評估,團隊管理, 項目管理, 產品管管,團隊建設 有參考作用 , 您可能感興趣的文章:
領導人怎樣帶領好團隊
構建創業公司突擊小團隊
國際化環境下系統架構演化
微服務架構設計
視頻直播平臺的系統架構演化
微服務與Docker介紹
Docker與CI持續集成/CD
互聯網電商購物車架構演變案例
互聯網業務場景下消息隊列架構
互聯網高效研發團隊管理演進之一
消息系統架構設計演進
互聯網電商搜索架構演化之一
企業信息化與軟件工程的迷思
企業項目化管理介紹
軟件項目成功之要素
人際溝通風格介紹一
精益IT組織與分享式領導
學習型組織與企業
企業創新文化與等級觀念
組織目標與個人目標
初創公司人才招聘與管理
人才公司環境與企業文化
企業文化、團隊文化與知識共享
高效能的團隊建設
項目管理溝通計劃
構建高效的研發與自動化運維
某大型電商雲平臺實踐
互聯網數據庫架構設計思路
IT基礎架構規劃方案一(網絡系統規劃)
餐飲行業解決方案之客戶分析流程
餐飲行業解決方案之採購戰略制定與實施流程
餐飲行業解決方案之業務設計流程
供應鏈需求調研CheckList
企業應用之性能實時度量系統演變

如有想了解更多軟件設計與架構, 系統IT,企業信息化, 團隊管理 資訊,請關注我的微信訂閱號:

MegadotnetMicroMsg_thumb1_thumb1_thu[2]

作者:Petter Liu
出處:http://www.cnblogs.com/wintersun/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。 該文章也同時發佈在我的獨立博客中-Petter Liu Blog。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章