【发布时间】:2018-01-19 15:25:44
【问题描述】:
我开发了一个使用 JWT 来授权客户端请求的 API。经验丰富的开发人员可以通过 HTTPS 使用登录 API 获取 JWT,并使用该 JWT 进行后续的授权 API 调用。一切正常。
现在,我从主要面向前端的经验不足的开发人员(HTML/CSS/Javascript 开发人员)那里得到了一些兴趣。对于这类人来说,理想情况下,他们希望被指示“将这个脚本标签放到你的 HTML 中,像这样设置它,魔法就会随之而来。”
如果不让他们也在他们后端的某个随机端口(例如 9090)上部署某种代理服务器(当我独立考虑这个问题时,我的大脑会去那里),是否有一个规范的策略可以允许这种事情,而开发人员不必将他们的 JWT 放在他们的客户端代码中,因此破坏了 API 的授权/身份验证模型(因为在这种情况下,任何人都可以伪装成该用户,例如,只需查看 Chrome 开发人员工具网络和/或源选项卡)。
显然我的后端代理概念并不完美,可能会被滥用,但至少我可以在某种滥用情况下撤销恶意行为的 JWT,并与受影响的授权开发人员沟通以提出解决方案。但是,对于某些人来说,设置代理服务需要付出很多努力。我想我最终可以为每个想要这种东西的开发人员设置一个,如果他们愿意为此付费,但我想知道“有没有更好的方法?”。你说什么?
【问题讨论】:
-
我是否纠正了 JWT 你的意思是 JSON Web 令牌? jwt.io
-
我不确定代理服务器将如何提供帮助。恶意用户可以伪装成小部件与代理服务器对话,而代理会代表他们与 API 对话。似乎与发布令牌相同的问题。我错过了什么?
-
@sbleon 是的,我的意思是 JSON Web 令牌。代理令牌至少可以对客户端隐藏 JWT,这就是我的想法,例如,我可以将 JWT 绑定到代理服务器的静态 IP 地址,因此只能从那里接受。
标签: api authorization client