[英]Auth via REST API and securing the API itself
我已經使用Jersey 2.x為我的應用程序實現了REST API。 我采用REST方法是因為我計划在以后添加移動應用程序。 目前,這只是一個網絡應用。 我正在考慮安全性。 我需要處理兩件事。
我想上面的#1和#2都可以使用OAuth 1.0a來完成,但就安全性和授權性而言,它們是兩種不同的實現。 他們可以共存嗎? 您能為我提供有關入門的任何指示以及現實世界中的一些示例嗎?
那里有很多信息,但是安全性不是我的強項,我試圖通過自己在自己的應用程序中進行編碼來理解。
我的第一個建議是讓您研究OAuth 2.0,我不打算討論它比OAuth 1.0a更好還是更壞,但是它似乎得到了更廣泛的采用,因此,您將更容易找到資源線上; OAuth2還將許多安全功能存儲在HTTPS的肩膀上,您似乎已經在使用它。
關於將HTTP Basic身份驗證與OAuth2進行比較,我將檢查此答案的一些優缺點,但從整體上看:
使用基本身份驗證,完整的憑據始終包含在每個請求中,而使用OAuth2,則是每個請求中包含的訪問令牌。
關於使用密鑰識別每個客戶端應用程序,OAuth2確實支持此功能,但是,如果您計划使用(本機)移動應用程序,那么您將面臨巨大的挑戰,因為這些應用程序無法真正保留機密(攻擊者可以對您的應用程序進行反向工程並找到秘訣)。
總之,對於傳統的Web應用程序而言,很容易確保您的API僅允許訪問確實使用您列入白名單的應用程序的授權用戶 。 如果您想對本機移動應用程序打開API, 您將很難證明調用確實來自您授權的應用程序之一 。
有關常見OAuth2方案的示例,我將檢查Auth0體系結構方案 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.