如何在客户端(前端)进行身份验证时保护Web服务

时间:2017-12-07 06:05:10

标签: django api authentication authorization saml-2.0

我的网络应用程序结构为 -

  • webapi:django Web服务[NOT REST]未实施安全性
  • 前端:Angular2。通过SAML实施的身份验证
  • 数据库:Mongodb

您能否建议保护webapi的最佳方法,因为目前任何人都可以访问拥有服务器的网络服务[api] url

如果您建议身份验证和授权流程将会有很大帮助,因为我完全陷入困境。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

在您的API上实施/authentication,接受Basic authentication。确保通过HTTPS执行此操作。用户名和密码将由您的Angular应用收集并发送回/authentication。如果用户进行身份验证,则返回会话令牌,例如JWT(检查pyjwt)。

正面和背面之间的所有以下通信都应包含令牌,只有在用户通过身份验证时才会发出令牌。令牌包含在请求标头中,特别是Authororization标头中的Bearer标头:

Authorization: Bearer <token>

JWT包含用户名,因此您可以在每个将来的请求中使用该用户名。此外,您不需要记录已发布的JWT,因为每个JWT都是自包含的,并且可以具有预定的到期数据。