是否可以使用我的服务器作为代理来获取 jwt 刷新令牌?
Posted
技术标签:
【中文标题】是否可以使用我的服务器作为代理来获取 jwt 刷新令牌?【英文标题】:Is it possible to obtain a jwt refresh token using my server as sort of a proxy? 【发布时间】:2016-08-14 03:19:49 【问题描述】:我正在创建一个系统,其中的代理需要刷新令牌才能向系统报告数据。用户将通过我的 webapp 为代理提供令牌。
我正在尝试让我的服务器将刷新令牌的请求传递给我的身份验证提供程序 (auth0)。流量是
-
用户点击“配置”,
我的服务器尝试使用为客户端创建的不记名令牌转到 auth0 以获取令牌
我将刷新令牌保存到服务器的数据存储中
我的服务器将令牌与代理包捆绑在一起,然后下载到客户端。
不过,我在第 2 步被挂断了。服务器使用有效的不记名令牌调用离线/刷新令牌,但 auth0 服务器返回说它需要登录并通过回调 URL。
不太确定我的计划是否可行。这可行吗?
如果这不可行,使用任何 jwt 库为我的代理创建我自己的刷新令牌以签署一些令牌请求,然后在出现刷新令牌时发出我自己的访问令牌是否安全?
编辑: 我稍微修改了流程,以便在客户端中调用刷新令牌的请求。我得到一个带有刷新令牌本身的回调 URL,或者我可以传回我的服务器的授权代码。在浏览器 URL 中使用刷新令牌似乎非常不安全!授权代码似乎更安全一些,但我仍然无法在服务器端获取刷新令牌。
【问题讨论】:
我正在尝试解决您尝试使用刷新令牌解决的问题。仅供参考,在 OAuth 2.0 中,刷新令牌被授予客户端(在浏览器或移动应用程序中运行的 Web 应用程序),并且仅用于授权服务器(auth0),并且永远不会发送到资源服务器(您的服务器应用程序)。请在没有任何令牌/身份验证的情况下解释您的要求。然后我们可以寻找解决方案。谢谢你,索玛。 @SomaYarlagadda 我们有数据收集代理,它们在没有任何需要验证的用户界面的情况下运行。计划是获取一个刷新令牌,将该令牌安装到代理中,允许它获取一个访问令牌。 【参考方案1】:这些代理安全吗?为了让事情更清楚,请定义您为客户端、Web 服务器和代理(应用程序)使用的技术。
您将无法在您的网络服务器上检索刷新令牌。如果当前的令牌已过期,刷新令牌是为了让长期运行的客户端获取 access_token。如果您的代理是安全的,您可以使用 Client Credentials Grant 来获取访问令牌。我认为这个流程至少与代理上的刷新令牌一样安全。如果可以选择此流程,请告诉我。
谢谢你, 索玛。
【讨论】:
以上是关于是否可以使用我的服务器作为代理来获取 jwt 刷新令牌?的主要内容,如果未能解决你的问题,请参考以下文章