RESTful身份验证意味着什么?它是如何工作的?我在谷歌上找不到好的概览。我唯一的理解是在URL中传递会话密钥(记住),但这可能是错误的。
当前回答
@skrevel(http://www.berenddeboer.net/rest/authentication.html )讨论了一种复杂但真正失败的身份验证方法。
您可以尝试访问该页面(该页面应仅对经过身份验证的用户可见)http://www.berenddeboer.net/rest/site/authenticated.html没有任何登录凭据。
(很抱歉,我无法对答案发表评论。)
我会说REST和身份验证根本不混合。REST表示无状态,但“已验证”是一种状态。不能在同一层同时使用它们。如果你是一个RESTful的拥护者,并且不赞成状态,那么你必须使用HTTPS(即将安全问题留给另一层)。
其他回答
使用公钥基础结构(其中密钥的注册涉及适当的绑定)可确保公钥以确保不可抵赖的方式绑定到分配给其的个人
看见http://en.wikipedia.org/wiki/Public_key_infrastructure . 如果您遵循正确的PKI标准,可以识别并锁定不正确使用被盗密钥的人或代理。如果要求代理使用证书,则绑定变得非常紧密。一个聪明且行动迅速的小偷可以逃跑,但他们会留下更多的面包屑。
我认为restful身份验证涉及将身份验证令牌作为请求中的参数传递。示例是api对apikey的使用。我认为使用cookie或http身份验证不合格。
首先也是最重要的,RESTful web服务是无状态的(或者换句话说,无会话的)。因此,RESTful服务没有也不应该包含会话或cookie的概念。在RESTful服务中进行身份验证或授权的方法是使用RFC 2616 HTTP规范中定义的HTTP授权头。每个请求都应该包含HTTP授权头,并且请求应该通过HTTPs(SSL)连接发送。这是在HTTPRESTful web服务中进行身份验证和验证请求授权的正确方法。我已经为Cisco Systems的Cisco PRIME Performance Manager应用程序实现了RESTful web服务。作为web服务的一部分,我还实现了身份验证/授权。
@skrevel(http://www.berenddeboer.net/rest/authentication.html )讨论了一种复杂但真正失败的身份验证方法。
您可以尝试访问该页面(该页面应仅对经过身份验证的用户可见)http://www.berenddeboer.net/rest/site/authenticated.html没有任何登录凭据。
(很抱歉,我无法对答案发表评论。)
我会说REST和身份验证根本不混合。REST表示无状态,但“已验证”是一种状态。不能在同一层同时使用它们。如果你是一个RESTful的拥护者,并且不赞成状态,那么你必须使用HTTPS(即将安全问题留给另一层)。
这就是实现这一点的方法:使用OAuth 2.0进行登录。
您可以使用Google以外的其他身份验证方法,只要它支持OAuth。
推荐文章
- ReferenceError: description没有定义NodeJs
- REST API - dto还是不是?
- OData和REST web服务的区别
- 人们如何在Go中管理身份验证?
- 用Spring我可以做一个可选的路径变量吗?
- 哪个HTTP状态代码表示“尚未准备好,稍后再试”?
- Django REST框架:向ModelSerializer添加额外字段
- 检查SQL Server登录是否已经存在
- SQL Server 2008不能用新创建的用户登录
- REST和RPC之间的Web服务差异
- Passport.js -错误:序列化用户到会话失败
- REST DELETE真的是幂等的吗?
- 如何用node.js实现一个安全的REST API
- 如何在Node.js内进行远程REST调用?旋度吗?
- Rails new vs create