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