我正在阅读这篇文章http://rc3.org/2011/12/02/using-hmac-to-authenticate-web-service-requests/并且我理解 HMAC 是如何工作的。
问题是 HMAC 似乎只对第三方(中继方)进行身份验证。如果第三方想要通过我的系统用户和他/她的密码来提取用户的特定数据怎么办?我不想使用 OAuth 1.0 或 2.0,因为它们存在各种问题。在我看来,我也需要对用户进行身份验证,而不仅仅是授权?
例如,Evernote 移动应用程序要求我输入用户名/密码,我确信它在后台调用某种 Web API。它没有使用 OAuth 2.0 对吗?因为我没有看到自己重定向到提供者站点来“授权”。在这种情况下,我的用户名/密码是如何传递给后端服务的?
[编辑]
经过一番思考,我假设 SSL 是解决方案?拥有 SSL 后,您可以将用户名/密码以纯文本形式传递给我的 Web api,然后我会做任何事情来验证第三方 PLUS 验证用户并使用用户数据进行响应?
在那种情况下,缺点是我必须信任第三方?所以他们不存储我用户的用户名+密码,对吗?