【发布时间】:2015-03-19 15:01:43
【问题描述】:
我们正在开发一个带有 ASP.NET Web Api 2 REST API 的 AngularJS 单页应用程序。我们正在使用 OWIN 中间件和 OAuth。
我们的系统由客户和用户组成:
- 客户是组织/公司。
- 用户是这些公司的员工。 用户属于客户。
目前,我们在每个控制器中使用以下检查:
[Route("api/clients/{clientId}/orders/{orderId}")]
public IHttpActionResult GetOrder(int clientId, int orderId)
{
if(UserComponent.GetUser(User.Identity.Name).ClientId != clientId)
{
return NotFound();
}
// Get order
return Ok(orderModel);
}
更多细节请参见下面的序列(参考图表):
为用户获取令牌(也返回 clientId)。
-
访问客户端资源。用户/客户授权:
一个。用户有权访问客户端资源,或
b.用户无权访问客户端资源。
基本上,来自客户端 A 的用户不应该能够访问来自客户端 B 的资源。
授权用户使用客户端资源的最佳方式是什么?
我们能否以某种方式将此推迟到 OWIN(也许通过使用声明)?
【问题讨论】:
标签: asp.net-web-api asp.net-identity asp.net-web-api2 owin asp.net-identity-2