我有一个由 EJB 组成的企业应用程序,并且还有一些 REST api。此外,我还有一些其他服务会消耗我的 bean,例如:g ui services。我的 EJB 使用基于角色的注释进行注释,即:e RolesAllowed
、. DeclareRoles
我的应用程序中也有一些 REST API,我需要对少数资源进行访问控制,并有一些其他 API 具有不受限制的访问权限。
在这种情况下,应该在哪里实施 RBAC?在 bean 级别还是在 REST API 级别?
我有一个由 EJB 组成的企业应用程序,并且还有一些 REST api。此外,我还有一些其他服务会消耗我的 bean,例如:g ui services。我的 EJB 使用基于角色的注释进行注释,即:e RolesAllowed
、. DeclareRoles
我的应用程序中也有一些 REST API,我需要对少数资源进行访问控制,并有一些其他 API 具有不受限制的访问权限。
在这种情况下,应该在哪里实施 RBAC?在 bean 级别还是在 REST API 级别?
以下是一些响应要素:
最终,最重要的是将您的自动化逻辑集中到一个存储库中:这可能是一组角色和权限(如rbac中定义)或一组策略(如abac中定义)。然后,您在 API 层和/或 EJB 层中所做的就是调用该集中位置以检查授权。
看一下这张图(源于xacml。它表明只要您调用外部决策点或只要您在不同系统中始终管理您的角色,您就可以在您认为必要的任何地方应用您的授权检查: