是否基于身份验证凭据RESTful返回不同的输出?

时间:2014-10-10 10:04:39

标签: rest restful-architecture

我有一个REST API,允许开发人员获取某个资源:

/api/projects
/api/project/4
...

API需要身份验证。身份验证令牌已添加到HTTP标头中。

基于哪个用户通过身份验证返回不同的输出是否RESTful?

谢谢!

1 个答案:

答案 0 :(得分:2)

REST没有在这方面定义任何东西。

您应该保持认证逻辑和授权逻辑独立于您的RESTful架构。

确实需要根据不同的属性/参数更改返回的内容,例如:

  • 身份验证类型
  • 时间
  • 用户位置
  • 设备类型......

您可以通过在REST服务前使用过滤器来实现此目的。过滤器/拦截器的解释为here

然后,您将向决策点发送授权请求,该决策点根据用户的身份(或其他属性)确定可以返回的内容。

例如,当且仅当它们属于同一区域时,您可以有一个逻辑将项目返回给用户。 REST端点仍然是/ api / projects,但返回的内容将根据authZ逻辑而有所不同。看看XACML和ALFA来实现该层。

HTH