我正在创建一个私有API,其中客户端(应用程序)调用API提供程序并检索或发送信息。我需要一种方法来授权或识别哪个应用程序正在执行操作,如果它有权访问它,则相同的应用程序用于用户签入的不同位置,并且可以使API调用从该位置获取信息而不是从另一个位置获取信息,但是我不确定是否允许使用API密钥或某些类似OAUTH的身份验证方法。
答案 0 :(得分:1)
一般情况下,您无法100%确定您的客户是接收数据的客户。黑客总能找到一种方法来欺骗你的程序。
尽管如此,有几种方法可以做点什么。最好的方法是让每个客户端拥有自己的密钥,它们以某种方式传递给服务器,进行身份验证。并且这些密钥必须以某种方式安全地传递到服务器。这不太可能发生。此密钥将唯一标识每个客户端。如果任何客户滥用权限,则可以拒绝这些权限。
下一步是如上所述创建密钥,使用公钥加密它们,然后将它们发送到服务器。如果你愿意的话,你甚至可以进行批准。
客户端查询服务器,生成数字的另一种解决方案。然后,用户将该号码输入他们之前登录过的网站。该数字需要适当复杂,并且仅在几分钟内有效,以降低某人接管设备的风险。这适用于单向应用程序,如Netflix。
总而言之,这取决于您对计划的需求。