TL; DR;是否有任何方法将(承载?)令牌绑定到唯一的客户端,并在HTTP REQ头中表示该令牌?如何识别客户唯一性?
在用户拥有服务帐户的情况下。同一用户应该能够使用不同的客户端应用程序(不同的浏览器,原生移动应用程序)来使用服务。对于每个不同的环境,最好的方法是应该遵循一个登录过程(OAuth2?),每个应用程序获取一个令牌(不记名令牌)。然后,每个客户端都能够使用这些服务,并且通过使用该令牌识别他们自己,服务提供商可以对其使用范围进行限定。
虽然服务提供商想要将每个令牌的使用隔离到特定客户端时会发生什么情况,但这在大多数情况下都能正常工作?
当然,在安全事件中,提供者可以放弃持有令牌的集合/表,但不会更好地让客户传递其唯一标识符(可能是md5(concat(app.version, environment.name, username))
)的MD5及其身份验证令牌?
P.S .:我认为传递这样的值作为一个属性在身体的有效载荷是无效的。由于这种认证步骤应该在服务器读取HTTP头时进行。
我明白你的观点,毫无疑问'client_id'是过程的一部分。是客户唯一性可能被欺骗。我猜我可以通过执行'md5(concat(app.version,env.name,username,verifier(salt,username,secret)))'''''''''''''''''感谢您的参考! –