【发布时间】:2015-07-11 11:53:57
【问题描述】:
TL;DR;有没有办法将(Bearer?)令牌绑定到唯一的客户端,并在 HTTP REQ 标头中表示?
在用户拥有服务帐户的情况下。同一个用户应该能够使用不同的客户端应用程序(不同的浏览器、本地移动应用程序)来使用服务。最好的方法是,对于每个不同的环境,如果每个应用程序都获取一个令牌(承载令牌),则应该遵循一个登录过程(OAuth2?)。然后每个客户端都可以使用服务,并且通过使用令牌标识它们自己,服务提供者能够确定它们的使用范围。
这在大多数情况下都可以正常工作,尽管当服务提供商希望将每个令牌的使用隔离到特定客户端时会发生什么?
为了确保在安全事件中,提供者可以只删除包含令牌的集合/表,但客户端将其唯一标识符(可能是 md5(concat(app.version, environment.name, username)))的 md5 以及他们的身份验证令牌?
P.S.:我认为在 body 的有效负载中传递这样的值作为属性是无效的。因为这样的身份验证步骤应该在服务器读取 HTTP 标头时发生。
【问题讨论】:
标签: api rest oauth-2.0 asp.net-web-api api-design