【发布时间】:2018-08-18 13:11:27
【问题描述】:
我目前正在阅读很多关于可用于保护应用程序或 Web 应用程序中的资源的访问控制可能性/机制。有 ACL、RBAC、ABAC 和许多其他概念。
假设我开发了一个简单的 Web 服务,它可以在“/api/article”之类的路径上返回知识库文章。 “控制器”连接到数据库并获取所有文章并将它们作为 XML 或 JSON 返回。
现在我想控制哪些用户或组可以访问数据库中的哪些文章。因此,例如,如果用户 'peter' 使用他的凭据访问路由 '/api/article',则 web 服务将只返回对 'peter' 可见的文章。
我想使用 ACL 来控制每个用户/组可以读取/写入/删除的内容。但是我不太明白:
在哪里实施访问控制?如果用户访问路由'/api/articles',我是否只获取控制器中的所有记录并根据访问控制列表检查每条记录(这听起来不是很好的性能明智)?或者有没有办法让数据库的“SELECT”语句只返回该特定用户实际可以看到的记录?
我真的很努力地寻找有关该主题的更多信息,并且有很多关于不同访问控制机制的信息,但没有关于实际执行发生的地点和方式......如果涉及到其他内容,它甚至会变得更加复杂修改、删除等操作...
【问题讨论】:
标签: security acl software-design access-control