我已經使用Jersey 2.x爲我的應用程序實現了REST API。我使用REST方法是因爲我計劃在稍後添加移動應用程序。現在它只是一個網絡應用程序。我正在考慮安全問題。有兩件事我需要處理。通過REST API進行身份驗證並保護API本身
- 對用戶進行身份驗證和授權:現在,我通過HTTP使用HTTP基本身份驗證。但有沒有更好的方式,而不是讓用戶通過電線發送用戶名和密碼。我知道這是通過HTTPS,但我正在探索。想到OAuth 1.0a。我在正確的軌道上嗎?
- 保護API本身:我不希望除了我的web應用程序之外的任何其他客戶端都在白名單中。稍後我會將我的移動應用程序添加到此白名單中。我在想象一些祕密鑰匙來識別這個客戶?
我想上面的#1和#2都可以用OAuth 1.0a來完成,但它們是兩種不同的實現方式,它們是受保護和授權的。他們能共存嗎?你能否向我提供關於如何開始和現實世界中的一些例子的任何指示?
這裏有很多信息,但安全並不是我的強項,我試圖通過自己編寫自己的應用程序來理解它。
[API密鑰vs HTTP身份驗證與OAuth在RESTful API中的可能重複](http://stackoverflow.com/questions/6767813/api-keys-vs-http-authentication-vs-oauth-in-a- restful-api) –
有什麼特別的理由提及OAuth 1.0a,而不是使用OAuth 2.0/OpenID Connect? –
說實話,我還沒有研究OAuth 2.0。這就是爲什麼。 – motiver