首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在NodeJS后端使用JWT与Active身份验证

在NodeJS后端使用JWT与Active身份验证
EN

Stack Overflow用户
提问于 2015-05-27 22:45:52
回答 1查看 11.5K关注 0票数 12

我正在构建一个内部网web应用程序,由一个棱角前端和一个Node.JS后端组成。应用程序需要使用公司Active进行身份验证和授权。

我正在考虑如何以一种安全的方式最好地实现这一点。我计划使用节点模块与AD进行实际通信,以便在用户登录时进行身份验证,并检查安全组成员是否存在某些受限操作等。

但是,我不太确定授权我的后端端点的最佳方法是什么。AD模块不提供任何令牌/票证,即使我认为Kerberos用于实际的身份验证过程。在我开发的其他经过身份验证的应用程序中,我在用户登录时生成了一个jsonwebtoken,然后在每个后端路由中传递并验证了该令牌,这是否也是针对AD进行身份验证的一个好主意?

编辑:问题的第二部分衍生到单独的线程:JWT令牌服务器端处理的最佳实践

另外,我还有一个更普遍的问题,那就是验证令牌的最佳实践是什么。假设用于JWT生成的“秘密”受到了破坏(在我的场景中,许多人可以访问系统的源代码,但不能访问系统本身)。我是否正确地认为,恶意用户可以只使用此信息代表任何给定用户生成令牌,而无需在我的API请求中使用AD来验证该令牌?通常使用jwt.sign(payload, secretOrPrivateKey, options)生成令牌。或者,假设恶意用户可以获得实际令牌(在令牌过期之前)。在我看来,它似乎不必知道用户的用户名和密码,安全现在简化为必须知道用户名和JWT秘密。这是否一个合理的关注,我应该做些什么来防止这种情况?

到目前为止,我最大的希望是在登录后使用服务器端会话来存储有关当前用户的信息,这样,即使在访问后端端点时恶意生成并使用了令牌,它也会失败,除非用户实际通过了登录路由,使用AD进行身份验证,并因此在会话中存储了一些信息。

我还考虑在每个API端点中使用AD进行身份验证,但这将要求在每个请求中发送AD用户名/密码,而这又需要将敏感信息存储在客户端的会话存储或本地存储中,这很可能是个坏主意。

那么,问题是:

1)将AD授权与JWT作为承载令牌相结合是否合理,还是使用AD构建安全后端+前端以进行身份验证的首选方法是什么?

2)如果JWT是一个好主意,那么使用JWT保护端点的最佳实践是什么?使用服务器端会话是否合理?

有趣的是,我已经找到了大量关于如何最好地实现基于令牌的身份验证的示例(一般情况下,或者具体使用NodeJS ),但其中许多示例在某种程度上似乎存在缺陷。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30494383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档