我开发了我的 Heroku 应用程序,它只公开 API(没有 UI(,它工作正常。 但是,如何将 API 限制为仅某些授权/经过身份验证的用户?
我绝对需要一个身份验证层来保护应用程序 API 并防止未经授权的访问。在外部系统开始调用我的 API 之前使用的一种login(user, psw)
调用。
但我在文档中找不到任何参考,它只是说这些是主要的安全最佳实践:
- Heroku SSL
- 强制使用 HTTPS
- 可信 IP 范围
知道吗?
这是你需要在应用层实现的东西,而不是Heroku提供的东西。最简单的方法是,您可以在应用程序中实现基本身份验证,以便用户将请求传递给它们,更复杂的解决方案将涉及用户帐户和oauth等。
可以直接在应用中实现所有身份验证逻辑。 或者,看看Auth0,它基本上为您提供身份验证和身份管理即服务。您可以通过 Heroku 元素市场轻松地将 Auth0 作为免费附加组件添加到您的 Heroku 应用程序中。
他们有许多不同的用例和相关的演练,并且他们提供了一个非常慷慨的免费层。
根据您的要求,听起来您可能希望使用 OAuth2 客户端凭据授予查看 Auth0 计算机到计算机应用程序。这样,您的外部系统基本上需要使用客户端 ID 和客户端密钥(您可以在 Auth0 中生成并提供给它们(向 Auth0 进行身份验证。然后,他们将使用 JWT 访问您的 API,您可以在应用程序中轻松验证该 API(Auth0 将为您提供许多不同语言的生成代码,以便您非常轻松地做到这一点(。然后,您的 API 将拒绝没有有效 JWT 的请求(通过发送"401 未经授权"响应(。
乍一看,这听起来可能有点吓人,但确实值得通过相关的 Auth0"快速入门"。他们真的竭尽全力让它尽可能简单!