我正在製作一個私有API,客戶端(應用程序)調用API提供程序並檢索或發送信息。我需要一種方法來授權或識別哪個應用正在執行操作,並且如果它有權訪問它,同一個應用會在用戶簽入的不同位置使用,並且可以使API調用從該位置獲取信息,而不是從另一個位置獲取信息,但我不確定是否允許通過使用API密鑰或OAuth等驗證方法來實現此目的。API身份/授權
API身份/授權
回答
一般而言,您無法100%確定您的客戶端是接收數據的客戶端。黑客總能找到一種方法來欺騙你的程序。
儘管如此,還是有幾種方法可以做點什麼。最好的辦法是讓每個客戶端擁有自己的密鑰,然後以某種方式傳遞給服務器進行身份驗證。而且這些密鑰必須以某種方式安全地傳遞給服務器。這不太可能發生。該密鑰將唯一標識每個客戶端。如果任何客戶濫用權限,他們可能會被拒絕。
下一步是如上所述創建密鑰,使用公鑰對其進行加密並將它們發送到服務器。如果你願意,你甚至可以進行審批。
客戶端查詢服務器,產生一個數字的另一種解決方案。然後用戶將該號碼輸入他們先前登錄的網站。該號碼需要適當複雜,並且只有幾分鐘纔有效,以減少有人接管設備的風險。這適用於單向應用程序,如Netflix。
總而言之,這取決於您的程序需求。
我將使用https + something。我在考慮每個客戶端的密鑰並使用基於散列的消息認證,如HMAC。我需要使用OAuth嗎? – jtomasrl
OAuth實際上是一種不同的融合方式,它旨在告訴一臺服務器另一臺服務器可以從中提取數據。我會爲每個客戶端創建一個密鑰,並且從那裏開始,基於哈希的消息傳遞身份驗證可能會很好。 – PearsonArtPhoto
- 1. WEB API 2身份驗證和授權
- 2. ASP.NET Web API授權和身份驗證
- 3. Twitter的API身份驗證VS授權
- 4. 身份驗證和授權
- 5. Couchdb身份驗證/授權
- 6. 身份驗證和授權
- 7. 基於權限的授權.net身份
- 8. JSP - 身份驗證和授權
- 9. RavenDB IIS身份驗證/授權
- 10. ASP.NET身份動態角色授權
- 11. JSF身份驗證和授權
- 12. RavenDB身份驗證和授權
- 13. ASP.Net身份驗證和授權選項
- 14. Spring Security的授權和身份驗證
- 15. ASP.Net/MVC授權Vs的身份驗證
- 16. Angularjs和WebAPI - 身份驗證和授權
- 17. Reactivemongo的身份驗證和授權
- 18. Tweepy身份驗證與授權
- 19. Restful身份驗證和授權
- 20. 身份驗證v/s授權
- 21. 身份驗證和授權,djangorestframework
- 22. 身份驗證和授權系統
- 23. C#SMF身份驗證(授權)
- 24. 身份驗證和授權 - 新安全
- 25. Net Sql AZMan身份驗證和授權
- 26. MVC 5,6的EntityFramework CF,身份(授權)
- 27. 自定義身份驗證未授權
- 28. MVC身份驗證和授權
- 29. RESTEasy身份驗證和授權
- 30. EJB身份驗證和授權
更多的信息是真的需要回答這個問題... – PearsonArtPhoto
更多信息喜歡什麼? – jtomasrl