我有API。其中一些僅限於通過OAuth從第三方應用程序訪問。如何安全地從我的web應用程序訪問我自己的API?
我也有一個web應用程序。用戶可以登錄並查看他們的私人信息。
該API也是從Web應用程序調用的。我的問題是用安全措施訪問API的好方法是什麼。
1. Third party applications -> OAuth
2. My own web application -> ???
我的Web應用程序使用會話ID進行身份驗證。我想用HTTP標頭傳輸會話標識可能是一種好方法,但我沒有信心。
對於〔實施例...
$ curl -X PUT \
-H "X-Sample-Application-Id: "My own web application's ID" \
-H "X-Sample-Session-Token: yeoql2dvn7whpm4tbe61viscv" \
如果API接收到這個請求,使用會話進行身份驗證,而不是OAuth的和識別用戶....
任何幫助將不勝感激。
感謝,
..我發現類似的問題
Questions About Consuming Your Own API with OAuth
UPDATE1
有人說JWT(JSON網絡令牌)是不錯的。
https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/
http://blog.mitsuruog.info/2014/08/jwtjson-web-tokenwebapicredential.html
UPDATE2
我可能能夠使用OAuth的 「資源所有者密碼憑據」
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/709.html
或者......「客戶端克雷德補助金「看起來好多了。
我很抱歉我遲到的迴應。你的建議很棒,我從來沒有想過這麼好的主意。最終我選擇了密碼授權類型,因爲我必須實施我們自己的移動應用程序。 (我們將爲第三方移動應用程序開發人員提供我們的API)而且,即使OAuth也非常複雜,但我可以找到一些庫。這對我也有好處。使用基本身份驗證可能需要自定義實現,不確定,但像創建表保存生成的密鑰和祕密。 – zono
感謝您的解釋,我有一些關於密碼授權的問題。我已經構建了一個授權服務器,該服務器使用需要client_id和client_secret的基本認證來保護oauth /令牌,以便接受請求。但我怎樣才能保護client_secret?客戶端是一個Angular 2應用程序。有必要使用基本身份驗證來保護oauth/token uri? – Paolo