通过身份验证限制使用Heroku应用程序?

时间:2018-09-20 03:19:41

标签: security authentication heroku

我开发了Heroku应用,该应用仅公开API(无UI),并且运行良好。 但是,如何将API仅限于特定的授权/已认证用户?

我绝对需要身份验证层来保护应用程序API并防止未经授权的访问。在外部系统可以开始调用我的API之前,需要进行login(user, psw)调用。

但是我在文档中找不到任何参考,它只是说这些是主要的安全最佳实践:

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

那是您需要在应用程序层实现的,而不是Heroku提供的。最简单的是,您可以在应用中实现基本身份验证,以便用户将其请求传递给他们,更复杂的解决方案将涉及用户帐户和oauth等。

答案 1 :(得分:0)

您可以直接在应用程序中实现所有身份验证逻辑。 或者,看看Auth0,它基本上为您提供身份验证和身份管理即服务。您可以通过Heroku Elements marketplace轻松将Auth0作为免费附件添加到Heroku应用中。

他们有许多不同的用例和相关的演练,并且提供了非常慷慨的免费套餐。

根据您的要求,听起来您可能想使用Auth0 Machine to Machine applications查看OAuth2 Client Credentials Grant。这样,您的外部系统基本上将需要使用客户端ID和客户端密钥(您可以在Auth0中生成并提供给它们)向Auth0进行身份验证。然后,他们将使用JWT访问您的API,您可以在自己的应用中轻松对其进行验证(Auth0将为您提供多种不同语言的生成代码,您可以很轻松地做到这一点)。然后,您的API将拒绝没有有效JWT的请求(通过发送“ 401未经授权”响应)。

乍一看,这听起来似乎有些吓人,但确实值得通过相关的Auth0“快速入门”。他们真的竭尽全力尝试使其尽可能地简单!