我正在制作一个私有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