翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例 5: Verified Permissions と Cedar を使用した UI フィルタリング
Verified Permissions を使用して、承認されたアクションに基づいて UI 要素の RBAC フィルタリングを実装することもできます。これは、マルチテナント SaaS アプリケーションの場合、特定のユーザーまたはテナントに関連付けられる可能性のあるコンテキスト依存の UI 要素を持つアプリケーションにとって非常に役立ちます。
次の例では、 Users
の Role
viewer
は更新を実行できません。これらのユーザーの場合、UI は更新ボタンをレンダリングしないでください。

この例では、単一ページのウェブアプリケーションには 4 つのボタンがあります。表示されるボタンは、現在アプリケーションにログインしているRole
ユーザーの によって異なります。単一ページのウェブアプリケーションが UI をレンダリングすると、Verified Permissions にクエリを実行して、ユーザーが実行を許可されているアクションを決定し、承認の決定に基づいてボタンを生成します。
次のポリシーでは、値が の タイプRole
がユーザーとデータの両方を表示viewer
できることを指定します。このポリシーの承認ALLOW
決定には、 viewData
または viewUsers
アクションが必要です。また、リソースを Data
または タイプに関連付ける必要がありますUsers
。ALLOW
決定により、UI は viewDataButton
と の 2 つのボタンをレンダリングできます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
の 4 つのボタンをすべてレンダリングできます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"] };