一个Web应用程序通过Restful API调用让用户访问资源,应该选择基本身份验证
、摘要身份验证
或Oauth
中的哪一种?
Oauth
难道不是替代基本身份验证和摘要式身份验证的更好的解决方案吗?
一个Web应用程序通过Restful API调用让用户访问资源,应该选择基本身份验证
、摘要身份验证
或Oauth
中的哪一种?
Oauth
难道不是替代基本身份验证和摘要式身份验证的更好的解决方案吗?
简单来说:
http基础认证:明文在Authorize头中发送用户名和密码。
http摘要认证:发送经服务器提供的nonce哈希后的用户名和密码。
oauth 1.0a和2.0最初都是设计用于授权第三方访问非自己拥有资源(例如,我允许移动照片应用代表我发布到Facebook),而无需向第三方提供我的凭据。 这两个协议的工作原理如下:
oauth1.0a:比oauth2更安全,但更难实现,还需要对所有请求进行签名。
oauth2:依赖ssl进行安全性,不需要请求签名。尽管其主要作者已因认为它未能达到其最初的设计目标(安全性,互操作性)而放弃了该项目,但它仍被Facebook和Google广泛使用。
以下文章对此非常有用:
我找到的rfcs尚不足够精通,但那些是权威来源,尽管有点难以理解。
如果您考虑在您的RESTful API中实现这些机制,我强烈推荐阅读它。
更新为什么要踩负面评价?