【发布时间】:2018-12-26 21:58:58
【问题描述】:
我的问题:如何使用以 Shibboleth SSO 作为身份验证机制的 JWT 令牌保护我的 Node JS API?
[我的申请流程]
- 我有一个 AngularJS 应用程序和一个后端节点 JS 应用程序。
- AngularJS 应用通过 HTTP 公开的 API 与后端应用通信。
- 现在 AngularJS 应用程序中的身份验证是使用 Shibboleth SSO 实现的,运行良好。
- 在 Shibboleth SSO 中,用户通过 IDP 进行身份验证,因此在登录机制期间我没有控制权。换句话说,IDP 不在我的控制范围内。
- 通过身份验证后,Shibboleth 将有关用户的所需数据返回给 AngularJS 应用程序。
- 然后 AngularJS App 通过 API 与 Back-End App 通信以获取一些数据。
[保护 API 的普通 JWT 场景]
- 用户尝试从前端应用登录,该应用将通过发送用户名和密码在后端调用登录 API。
- 在后端,如果用户存在,后端会生成一个 JWT Token 并发回给用户。
- 用户将利用该 JWT 令牌进行进一步的 API 调用。并且后端可以验证 Token 并做出适当的响应。
- 因此保护 API 并防止未经授权的访问。
[我的 JWT 场景和问题]
- 当用户到达前端 AngularJS 应用程序时,用户已经通过了身份验证。
- 现在 AngularJS 应用程序将对后端进行一些 API 调用以获取一些数据。
- [问题/问题]:如何保护我的后端 API 免受未经授权的访问?
[有缺陷的方法]
- [方法]:我可以在我的 Node JS 应用程序中创建一个登录 API,它将接受我从 Shibboleth SSO 收到的用户名和密码,并在后端生成一个 JWT 令牌。并使后端将该 JWT 令牌作为响应返回。用户可以进一步利用它来进行 API 调用。
- [缺陷]:但是这种方法的问题是:如何验证从前端收到的用户名和密码的合法性?
我的问题又是:如何使用具有 Shibboleth SSO 作为身份验证机制的 JWT 令牌保护我的 Node JS API?
我希望,我可能已经正确地解释了我的场景。任何帮助、指导或正确的方向都将不胜感激。
谢谢:)
【问题讨论】:
-
您是如何设法在您的 web 应用上设置 shibboleth SSO 的?我正在努力奋斗,并且已经在谷歌上搜索了很长时间。您需要达到哪个端点?有什么好的入门教程吗?
-
@EthanSK 你想做什么?你能向我解释一下你的情况吗?
标签: node.js authentication jwt single-sign-on shibboleth