在 oAuth 2.0 中替代将详细信息作为 url 查询字符串传递?

Posted

技术标签:

【中文标题】在 oAuth 2.0 中替代将详细信息作为 url 查询字符串传递?【英文标题】:alternate to pass details as url query string in oAuth 2.0? 【发布时间】:2014-11-19 00:37:27 【问题描述】:

为了获得刷新令牌,我正在调用这样的服务

http://www.myapp.com/SampleApp/oauth/token?grant_type=password&client_id=my-trusted-client&username=admin&password=123456

现在服务将返回刷新令牌和临时访问令牌 但问题是'在 url 中通过网络传递用户名,尤其是密码是不安全的'所以我想调用 /oauth/token 并且我需要在请求中传递 grant_type、client_id、username、password..details正文或请求标头.... 并支持我需要在 security-servlet.xml 中配置的过滤器

而且我还想在请求标头中传递 access_token 来调用不在 url 中的休息服务,例如 员工/名单?accessToken=657gjgf3563285 我怎样才能做到这一点?以及我的 security-servlet.xml 看起来如何支持这一点? 最后,我对 /oauth/token 的请求看起来如何......

【问题讨论】:

【参考方案1】:

spring oauth 中支持 Bearer 令牌(请参阅 BearerTokenExtractor)。

另外,如果在 URL 中传递用户名/密码对您来说是不安全的,则很可能将其放在请求正文或标头中将不再安全。为了更安全,您需要使用 PKI 加密内容或使用 HTTPS 之类的安全传输方法(OAuth 2 规范说它基本上是 TLS 的要求)。

【讨论】:

以上是关于在 oAuth 2.0 中替代将详细信息作为 url 查询字符串传递?的主要内容,如果未能解决你的问题,请参考以下文章

在OAuth 2.0中,如何使用JWT结构化令牌?

OAuth 2.0

如何使用 OAuth 2.0 实现 Web 小部件

OAuth 2.0 开放授权原理

Google API 和 OAuth 2.0 的正确重定向 URI

OAuth 2.0 技术选型难题解析(附一整套代码)| 极客时间