我有一个API,它没有身份验证(故意(。我如何确保它的安全,以便只有我的应用程序才能发出请求,而API只能识别那些来自该服务器的API请求?
好吧,您需要身份验证🤷
为了验证谁在调用您的API,您需要对他们进行身份验证。这并不意味着您必须对用户进行身份验证。应用程序还可以进行身份验证并将其身份呈现给其他应用程序。这就是你在这里需要的。你可以通过几种不同的方式实现这种应用程序到应用程序的身份验证:
- 基本身份验证。您可以在应用程序中保存ID和机密,并使用它们发送
Authentication
标头 - 使用OAuth的客户端凭据流。这是一个OAuth流,专门用于应用程序向其他应用程序标识自己
- 使用双向TLS。您可以告诉您的API您的应用程序将使用什么证书,并且只接受使用该证书的连接
- 识别JWT断言。在这种方法中,应用程序使用JWT的ID对其进行签名,API能够验证JWT的签名
您可以提供IP限制。您可以获取远程请求IP,并且检查IP是否在允许的IP列表中。