我有一个使用OAuth 2.0与第三方服务通信的Web应用程序。我希望我的服务器和我的网络应用程序代表用户与授权服务进行通信。我经历了正常的授权步骤,即执行重定向,获取身份验证代码,将其交换为访问令牌,所有爵士乐。完成后,我的服务器具有访问令牌并可以与服务进行通信。但是,我希望网络应用程序能够与服务进行通信,因此我无需通过服务器路由所有内容。
我可以将访问令牌发送到Web应用程序,以便实现此目的吗?或者,访问令牌是否应该在我的服务和服务之间保密,从不向用户透露,就像客户端秘密一样?
我试图在规范和各种博客文章中找到答案,但无论如何都没有找到确定的答案。我知道客户端应用程序有一个隐含的身份验证方法,它根本不涉及服务器端组件。因此,我最初的猜测是我可以将令牌发送给客户端。我想验证一下。
答案 0 :(得分:3)
令牌被认为是非常敏感的信息,因为它允许访问服务。如果他们有这个令牌,任何人都可以发出请求。
这就是令牌在授权标头中传递的原因,这就是强烈建议您通过https进行所有呼叫以保护标头和正文信息的原因。这也是为什么建议令牌的寿命很短的原因,如果一个令牌确实受到损害,它就不会持续很长时间。
是的,您可以在自己的应用程序之间共享此令牌,它应该可以工作,前提是令牌的接收者也不存储呼叫者的IP地址,或者还有其他一些检查机制。
然而,理想情况是您需要为每个需要访问的应用程序发出一组不同的ClientID和Client Secret。
不要忘记这是应用程序向接收方标识自己的方式,它可能对报告和分析非常重要。