[英]Best practices to share the access controls across back-end and front-end?
我正在开发一个由 2 个请求后端 REST-API 的前端应用程序组成的项目。
我们的应用程序的组织目前非常简单,但很快就会发展。
前端:
后端:
语境:
目前我们还没有一个清晰的架构来管理访问策略,业务逻辑分布在两个应用程序中,这会导致几个问题:
我最初的想法是将访问策略逻辑集中在 API 上。 这样我们可以防止重复,所有规则都在代码库的一部分中,如果我们稍后决定添加前端应用程序甚至 API 微服务,它也会更好地扩展。
缺少的一点是:如何在后端和前端共享访问策略?
例子:
route: GET /user/access_policies
response :
{
author: {
read: true,
create: true,
update: false,
delete: false
},
books: {
read: true,
create: true,
update: true,
delete: false,
}
}
我还可以在简单的 CRUD 动词之外公开特定的业务策略:
{
books: {
read: true,
create: false,
update: false,
delete: false,
deleteOwnBooks: true, // custom business policy (only delete the books owned by the current user)
deletePublishedBook: true, // same
}
}
您是否有其他关于共享此类访问策略的建议或最佳实践?
如果一般的授权,特别是 ABAC 在您的架构中扮演如此重要的角色,那么我建议您研究类似OPA的东西。 如果您可以切换到 RBAC,最简单的方法是在身份提供程序中配置角色,并将它们作为您传递的 JWT 中的声明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.