作 者:[美] 賈斯廷·裡徹(Justin Richer),[瑞士] 安東尼奧·桑索(Antonio Sanso) 著 楊鵬 譯
定 價:89
出 版 社:人民郵電出版社
出版日期:2019年04月01日
頁 數:279
裝 幀:平裝
ISBN:9787115509376
OAuth是互聯網公司廣泛使用的協議,守護著優選不計其數的Web API。本書從實戰角度出發,帶你領略OAuth生態繫統的秀美風光,並學會自己構建安全的客戶端、受保護資源和服務器,透徹理解OAuth 2的實現和部署流程,不僅知其然,還知其所以然。本書重點講解以下內容:- OAuth 2的設計理念和重要性;- 構建OAuth 2生態繫統;- OAuth 2生態繫統的常見漏洞;- 針對OAuth令牌的常見攻擊;- 動態客戶端注冊。“很好實用,告訴我們什麼該做,什麼不該做。”——Ia等
●第 一部分 起步第 1章 OAuth 2.0是什麼,為什麼要關心它 21.1 OAuth 2.0是什麼 21.2 黑暗的舊時代:憑據共享與憑據盜用 51.3 授權訪問 91.3.1 超越HTTP 基本認證協議和密碼共享反模式 101.3.2 授權委托:重要性及應用 111.3.3 用戶主導的安全與用戶的選擇 121.4 OAuth 2.0:優點、缺點和丑陋的方面 131.5 OAuth 2.0 不能做什麼 151.6 小結 16第 2章 OAuth之舞 172.1 OAuth 2.0協議概覽:獲取和使用令牌 172.2 OAuth 2.0授權許可的完整過程 172.3 OAuth中的角色:客戶端、授權服務器、資源擁有者、受保護資源 252.4 OAuth的組件:令牌、權限範圍和授權許可 272.4.1 訪問令牌 272.4.2 權限範圍 272.4.3 刷新令牌 272.4.4 授權許可 282.5 OAuth的角色與組件間的交互:後端信道、前端信道和端點 292.5.1 後端信道通信 292.5.2 前端信道通信 302.6 小結 32第二部分 構建OAuth環境第3章 構建簡單的OAuth客戶端 343.1 向授權服務器注冊OAuth客戶端 343.2 使用授權碼許可類型獲取令牌 363.2.1 發送授權請求 373.2.2 處理授權響應 393.2.3 使用state參數添加跨站保護 403.3 使用令牌訪問受保護資源 413.4 刷新訪問令牌 433.5 小結 47第4章 構建簡單的OAuth受保護資源 484.1 解析HTTP請求中的OAuth令牌 494.2 根據數據存儲驗證令牌 504.3 根據令牌提供內容 534.3.1 不同的權限範圍對應不同的操作 544.3.2 不同的權限範圍對應不同的數據結果 564.3.3 不同的用戶對應不同的數據結果 584.3.4 額外的訪問控制 614.4 小結 61第5章 構建簡單的OAuth授權服務器 625.1 管理OAuth客戶端注冊 625.2 對客戶端授權 645.2.1 授權端點 645.2.2 客戶端授權 665.3 令牌頒發 685.3.1 對客戶端進行身份認證 695.3.2 處理授權許可請求 705.4 支持刷新令牌 725.5 增加授權範圍的支持 745.6 小結 77第6章 現實世界中的OAuth 2.0 786.1 授權許可類型 786.1.1 隱式許可類型 796.1.2 客戶端憑據許可類型 816.1.3 資源擁有者憑據許可類型 856.1.4 斷言許可類型 896.1.5 選擇合適的許可類型 916.2 客戶端部署 926.2.1 Web應用 936.2.2 瀏覽器應用 936.2.3 原生應用 946.2.4 處理密鑰 996.3 小結 100第三部分 OAuth 2.0的實現與漏洞第7章 常見的客戶端漏洞 1027.1 常規客戶端安全 1027.2 針對客戶端的CSRF攻擊 1037.3 客戶端憑據失竊 1057.4 客戶端重定向URI注冊 1077.4.1 通過Referrer盜取授權碼 1087.4.2 通過開放重定向器盜取令牌 1117.5 授權碼失竊 1137.6 令牌失竊 1147.7 原生應用很好實踐 1157.8 小結 116第8章 常見的受保護資源漏洞 1178.1 受保護資源會受到什麼攻擊 1178.2 受保護資源端點設計 1188.2.1 如何保護資源端點 1188.2.2 支持隱式許可 1268.3 令牌重放 1288.4 小結 130第9章 常見的授權服務器漏洞 1319.1 常規安全 1319.2 會話劫持 1319.3 重定向URI篡改 1349.4 客戶端假冒 1389.5 開放重定向器 1409.6 小結 142第 10章 常見的OAuth令牌漏洞 14310.1 什麼是bearer令牌 14310.2 使用bearer令牌的風險及注意事項 14410.3 如何保護bearer令牌 14510.3.1 在客戶端上 14510.3.2 在授權服務器上 14610.3.3 在受保護資源上 14610.4 授權碼 14710.5 小結 152第四部分 更進一步第 11章 OAuth令牌 15411.1 OAuth令牌是什麼 15411.2 結構化令牌:JWT 15511.2.1 JWT的結構 15611.2.2 JWT聲明 15711.2.3 在服務器上實現JWT 15811.3 令牌的加密保護:JOSE 16011.3.1 使用HS256的對稱簽名 16111.3.2 使用RS256 的非對稱簽名 16211.3.3 其他令牌保護方法 16511.4 在線獲取令牌信息:令牌內省 16611.4.1 內省協議 16711.4.2 構建內省端點 16811.4.3 發起令牌內省請求 17011.4.4 將內省與JWT結合 17111.5 支持令牌撤回的令牌生命周期管理 17211.5.1 令牌撤回協議 17211.5.2 實現令牌撤回端點 17311.5.3 發起令牌撤回請求 17411.6 OAuth 令牌的生命周期 17511.7 小結 177第 12章 動態客戶端注冊 17812.1 服務器如何識別客戶端 17812.2 運行時的客戶端注冊 17912.2.1 協議的工作原理 18012.2.2 為什麼要使用動態注冊 18112.2.3 實現注冊端點 18312.2.4 實現客戶端自行注冊 18612.3 數據 18812.3.1 核心數據字段名表 18812.3.2 可讀的數據國際化 19012.3.3 軟件聲明 19112.4 管理動態注冊的客戶端 19212.4.1 管理協議的工作原理 19312.4.2 實現動態客戶端注冊管理API 19512.5 小結 202第 13章 將OAuth 2.0用於用戶身份認證 20313.1 為什麼OAuth 2.0不是身份認證協議 20313.2 OAuth到身份認證協議的映射 20513.3 OAuth 2.0是如何使用身份認證的 20713.4 使用OAuth 2.0進行身份認證的常見陷阱 20813.4.1 將訪問令牌作為身份認證的證明 20813.4.2 將對受保護API的訪問作為身份認證的證明 20913.4.3 訪問令牌注入 20913.4.4 缺乏目標受眾 21013.4.5 無效用戶信息注入 21013.4.6 不同身份提供者的協議各不相同 21013.5 OpenID Connect:一個基於OAuth 2.0的認證和身份標準 21013.5.1 ID令牌 21113.5.2 UserInfo端點 21213.5.3 動態服務器發現與客戶端注冊 21413.5.4 與OAuth 2.0的兼容性 21613.5.5 不錯功能 21613.6 構建一個簡單的OpenID Connect繫統 21713.6.1 生成ID 令牌 21713.6.2 創建UserInfo 端點 21913.6.3 解析ID 令牌 22113.6.4 獲取UserInfo 22213.7 小結 224第 14章 使用OAuth 2.0的協議和配置規範 22514.1 UMA 22514.1.1 UMA的重要性 22614.1.2 UMA協議的工作原理 22714.2 HEART 23714.2.1 HEART的重要性 23714.2.2 HEART規範 23814.2.3 HEART機制維度的配置規範 23814.2.4 HEART 語義維度的配置規範 23914.3 iGov 23914.3.1 iGov的重要性 24014.3.2 iGov展望 24014.4 小結 240第 15章 bearer令牌以外的選擇 24115.1 為什麼不能滿足於bearer令牌 24115.2 PoP令牌 24215.2.1 PoP令牌的請求與頒發 24515.2.2 在受保護資源上使用PoP令牌 24615.2.3 驗證PoP令牌請求 24615.3 PoP令牌實現 24715.3.1 頒發令牌和密鑰 24715.3.2 生成簽名頭部並發送給受保護資源 24915.3.3 解析頭部、內省令牌並驗證簽名 25015.4 TLS令牌綁定 25215.5 小結 254第 16章 歸納總結 25516.1 正確的工具 25516.2 做出關鍵決策 25616.3 更大範圍的生態繫統 25716.4 社區 25716.5 未來 25816.6 小結 259附錄A 代碼框架介紹 260附錄B 補充代碼清單 265
本書深入探討OAuth的運行機制,詳細介紹如何在不安全的網絡環境下正確使用、部署OAuth,確保安全認證,是目前關於OAuth全面深入的參考資料。書中內容分為四大部分,分別概述OAuth 2.0協議,如何構建一個完整的OAuth 2.0生態繫統,OAuth 2.0生態繫統中各個部分可能出現的漏洞及其如何規避,以及更外圍生態繫統中的標準和規範。
[美] 賈斯廷·裡徹(Justin Richer),[瑞士] 安東尼奧·桑索(Antonio Sanso) 著 楊鵬 譯
【作者介紹】賈斯廷·裡徹(Justin Richer),繫統架構師、軟件工程師,OAuth工作組重要成員,深度參與了OAuth 2核心規範的制定,任多個擴展規範的技術編輯,並領導開發了基於OAuth的服務端與客戶端套件MITREid Connect。安東尼奧·桑索(Antonio Sanso),就職於Adobe公司,長期從事安全研究工作。應用密碼學博士,持有多項Web技術。【譯者介紹】楊鵬,畢業於四川大學電子信息學院信息安全研究所,目前從事Web前端開發,同時廣泛涉獵各技術領域。