本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例 5:使用已验证权限和 Cedar 进行用户界面筛选
您还可以使用已验证的权限根据授权的操作对用户界面元素实施 RBAC 筛选。对于具有上下文敏感用户界面元素的应用程序来说,这非常有价值,这些元素可能与特定用户或租户相关联,如果是多租户 SaaS 应用程序。
在以下示例中Users
,Role
viewer
不允许执行更新。对于这些用户,用户界面不应呈现任何更新按钮。
![使用 Amazon 验证权限和 Cedar 进行用户界面筛选示例](images/avp-example-5.png)
在此示例中,单页 Web 应用程序有四个按钮。哪些按钮可见取决于当前登录应用程序的用户。Role
在单页 Web 应用程序呈现 UI 时,它会查询 “已验证权限” 以确定用户有权执行哪些操作,然后根据授权决定生成按钮。
以下策略指定值为Role
的类型viewer
可以同时查看用户和数据。此策略的ALLOW
授权决策需要viewData
或viewUsers
操作,还需要将资源与Data
或类型相关联Users
。ALLOW
决定允许 UI 呈现两个按钮:viewDataButton
和viewUsersButton
。
permit ( principal in GuiAPP::Role::"viewer", action in [GuiAPP::Action::"viewData", GuiAPP::Action::"viewUsers"], resource ) when { resource in [GuiAPP::Type::"Data", GuiAPP::Type::"Users"] };
以下策略指定值为Role
的类型viewerDataOnly
只能查看数据。此策略的ALLOW
授权决策需要viewData
采取行动,还需要与该类型关联的资源Data
。ALLOW
决定允许 UI 呈现按钮viewDataButton
。
permit ( principal in GuiApp::Role::"viewerDataOnly", action in [GuiApp::Action::"viewData"], resource in [GuiApp::Type::"Data"] );
以下策略指定值为Role
的类型admin
可以编辑和查看数据和用户。此策略的ALLOW
授权决策需要updateData
updateUsers
、viewData,
或的操作viewUsers
,并且还需要将资源与Data
或类型相关联Users
。ALLOW
决定允许 UI 呈现所有四个按钮:updateDataButton
updateUsersButton
、viewDataButton
、和viewUsersButton
。
permit ( principal in GuiApp::Role::"admin", action in [ GuiApp::Action::"updateData", GuiApp::Action::"updateUsers", GuiApp::Action::"viewData", GuiApp::Action::"viewUsers" ], resource ) when { resource in [GuiApp::Type::"Data", GuiApp::Type::"Users"] };