

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempio 5: filtraggio dell'interfaccia utente con autorizzazioni verificate e Cedar
<a name="avp-ui-filtering-examples"></a>

Puoi anche utilizzare le autorizzazioni verificate per implementare il filtraggio RBAC degli elementi dell'interfaccia utente in base ad azioni autorizzate. Ciò è estremamente utile per le applicazioni con elementi dell'interfaccia utente sensibili al contesto che potrebbero essere associati a utenti o tenant specifici nel caso di un'applicazione SaaS multi-tenant.

Nell'esempio seguente, `Users` non `Role` `viewer` sono autorizzati a eseguire aggiornamenti. Per questi utenti, l'interfaccia utente non dovrebbe visualizzare alcun pulsante di aggiornamento.

![Esempio di filtraggio dell'interfaccia utente con Amazon Verified Permissions e Cedar](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/avp-example-5.png)


In questo esempio, un'applicazione Web a pagina singola ha quattro pulsanti. I pulsanti visibili dipendono dall'`Role`utente che ha attualmente effettuato l'accesso all'applicazione. Quando l'applicazione Web a pagina singola esegue il rendering dell'interfaccia utente, richiede le autorizzazioni verificate per determinare quali azioni l'utente è autorizzato a eseguire, quindi genera i pulsanti in base alla decisione di autorizzazione.

La seguente politica specifica che il tipo `Role` con un valore di `viewer` può visualizzare sia gli utenti che i dati. Una decisione di `ALLOW` autorizzazione per questa politica richiede un'`viewUsers`azione `viewData` o e richiede inoltre che una risorsa sia associata al tipo `Data` o`Users`. Una `ALLOW` decisione consente all'interfaccia utente di visualizzare due pulsanti: `viewDataButton` e`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"]
};
```

La seguente politica specifica che il tipo `Role` con un valore di `viewerDataOnly` può solo visualizzare i dati. Una decisione di `ALLOW` autorizzazione per questa politica richiede un'`viewData`azione e richiede anche l'associazione di una risorsa al tipo`Data`. Una `ALLOW` decisione consente all'interfaccia utente di eseguire il rendering del pulsante`viewDataButton`.

```
permit (
    principal in GuiApp::Role::"viewerDataOnly",
    action in [GuiApp::Action::"viewData"],
    resource in [GuiApp::Type::"Data"] 
);
```

La seguente politica specifica che il tipo `Role` con un valore di `admin` può modificare e visualizzare dati e utenti. Una decisione di `ALLOW` autorizzazione per questa politica richiede un'azione di `updateData` `updateUsers``viewUsers`, `viewData,` o e richiede inoltre che una risorsa sia associata al tipo `Data` o`Users`. Una `ALLOW` decisione consente all'interfaccia utente di visualizzare tutti e quattro i pulsanti:`updateDataButton`, `updateUsersButton``viewDataButton`, e`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"]
};
```