Restful身份验证作为资源

时间:2014-11-20 09:17:09

标签: security rest session authentication

我一直在寻找我们如何处理REST中的身份验证,并且我发现很难理解人们为什么不将身份验证视为资源。当使用名词而不是名词化动词时,应考虑对

进行身份验证

POST / secure-sessions

我们将被重定向到:

GET / secure-sessions / {id}

所有其他安全资源将是:

GET / secure-sessions / {id} / other-resources POST / secure-sessions / {id} / other-resources 等

如果我们退出,我们会这样做:

DELETE / secure-sessions / {id}

为什么从未考虑过这个问题? 人们仍然可以使用授权标头和其他令牌机制。

干杯

Tjerk

2 个答案:

答案 0 :(得分:1)

在阅读REST约束之前,我在几年前就有了同样的想法。答案很简单,它违反了REST的stateless constraint

  

我们接下来为客户端 - 服务器交互添加一个约束:   沟通必须是无国籍的,就像在   第3.4.3节(图5-3)的客户端无状态服务器(CSS)样式,   这样从客户端到服务器的每个请求都必须包含所有   理解请求所必需的信息,不能采取   服务器上任何存储上下文的优点。 会话状态是   因此完全保留在客户端上。

答案 1 :(得分:0)

这是一个坏主意,因为REST资源应该具有稳定的URI。您的解决方案为同一资源创建了许多不同的URI(取决于请求资源的人)。

身份验证是与资源本身正交的资源请求的一个方面。有很多方法可以保护REST资源(请参阅OAuth 2.0