Implementazione dell'autorizzazione in Amazon Verified Permissions - Autorizzazioni verificate da Amazon

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à.

Implementazione dell'autorizzazione in Amazon Verified Permissions

Dopo aver creato l'archivio delle politiche, le politiche, i modelli, lo schema e il modello di autorizzazione, sei pronto per iniziare ad autorizzare le richieste utilizzando Amazon Verified Permissions. Per implementare l'autorizzazione Verified Permissions, devi combinare la configurazione delle policy AWS con l'integrazione in un'applicazione. Per integrare Verified Permissions con la tua applicazione, aggiungi un AWS SDK e implementa i metodi che richiamano l'API Verified Permissions e generano decisioni di autorizzazione in base al tuo policy store.

L'autorizzazione con autorizzazioni verificate è utile per le autorizzazioni UX e le autorizzazioni API nelle applicazioni.

Autorizzazioni UX

Controlla l'accesso degli utenti alla UX della tua applicazione. Puoi consentire a un utente di visualizzare solo i moduli, i pulsanti, la grafica e le altre risorse esatte a cui deve accedere. Ad esempio, quando un utente effettua l'accesso, potresti voler determinare se il pulsante «Trasferisci fondi» è visibile nel suo account. Puoi anche controllare le azioni che un utente può intraprendere. Ad esempio, nella stessa app bancaria potresti voler determinare se il tuo utente è autorizzato a modificare la categoria di una transazione.

Autorizzazioni API

Controlla l'accesso degli utenti ai dati. Le applicazioni fanno spesso parte di un sistema distribuito e importano informazioni da API esterne. Nell'esempio dell'app bancaria in cui Verified Permissions ha consentito la visualizzazione del pulsante «Trasferisci fondi», è necessario prendere una decisione di autorizzazione più complessa quando l'utente avvia un trasferimento. Verified Permissions può autorizzare la richiesta API che elenca gli account di destinazione idonei al trasferimento, quindi la richiesta di inoltrare il trasferimento all'altro account.

Gli esempi che illustrano questo contenuto provengono da un esempio di policy store. A seguire, crea l'DigitalPetarchivio di policy di esempio Store nel tuo ambiente di test.

Per un'applicazione di esempio end-to-end che implementa le autorizzazioni UX utilizzando l'autorizzazione in batch, consulta Use Amazon Verified Permissions per un'autorizzazione granulare su larga scala sul Security Blog.AWS

Operazioni API per l'autorizzazione

L'API Verified Permissions prevede le seguenti operazioni di autorizzazione.

IsAuthorized

L'operazione IsAuthorized API è il punto di accesso alle richieste di autorizzazione con autorizzazioni verificate. È necessario inviare gli elementi principali, di azione, di risorsa, di contesto ed entità. Verified Permissions convalida le entità contenute nella richiesta rispetto allo schema del policy store. Verified Permissions valuta quindi la richiesta rispetto a tutte le politiche nell'archivio delle politiche richiesto che si applicano alle entità incluse nella richiesta.

IsAuthorizedWithToken

L'IsAuthorizedWithTokenoperazione genera una richiesta di autorizzazione dai dati utente nei token web JSON (JWT) di Amazon Cognito. Verified Permissions funziona direttamente con Amazon Cognito come fonte di identità nel tuo archivio di polizze. Verified Permissions compila tutti gli attributi relativi all'indirizzo principale della tua richiesta utilizzando le attestazioni contenute nell'ID degli utenti o nei token di accesso. Puoi autorizzare azioni e risorse dagli attributi utente o dall'appartenenza a un gruppo in un pool di utenti di Amazon Cognito.

Non puoi includere informazioni sui tipi principali di gruppi o utenti in una IsAuthorizedWithToken richiesta. È necessario inserire tutti i dati principali nel JWT fornito.

BatchIsAutorizzato

L'BatchIsAuthorizedoperazione elabora più decisioni di autorizzazione per un singolo principale o risorsa in un'unica richiesta API. Questa operazione raggruppa le richieste in un'unica operazione batch che riduce al minimo l'utilizzo delle quote e restituisce le decisioni di autorizzazione per ciascuna delle 30 azioni annidate complesse. Con l'autorizzazione in batch per una singola risorsa, puoi filtrare le azioni che un utente può eseguire su una risorsa. Con l'autorizzazione in batch per un singolo principale, puoi filtrare in base alle risorse su cui un utente può intervenire.

BatchIsAuthorizedWithToken

L'BatchIsAuthorizedWithTokenoperazione elabora più decisioni di autorizzazione per un singolo principale in un'unica richiesta API. Il principale viene fornito dalla fonte di identità del Policy Store in un ID o token di accesso. Questa operazione raggruppa le richieste in un'unica operazione batch che riduce al minimo l'utilizzo delle quote e restituisce le decisioni di autorizzazione per ciascuna delle 30 richieste di azioni e risorse. Nelle tue politiche, puoi autorizzare il loro accesso dai loro attributi o la loro appartenenza al gruppo in un pool di utenti di Amazon Cognito.

Ad esempioIsAuthorizedWithToken, non puoi includere informazioni sui tipi principali di gruppi o utenti in una BatchIsAuthorizedWithToken richiesta. È necessario inserire tutti i dati principali nel JWT fornito.

Verifica del tuo modello di autorizzazione

Per comprendere l'effetto della decisione di autorizzazione di Verified Permissions quando distribuisci la tua applicazione, puoi valutare le tue politiche man mano che le sviluppi con Banco di prova e con le richieste dell'API REST HTTPS alle autorizzazioni verificate. Il test bench è uno strumento AWS Management Console per valutare le richieste e le risposte di autorizzazione nell'archivio delle politiche.

L'API REST di Verified Permissions è il passo successivo dello sviluppo, che prevede il passaggio da una comprensione concettuale alla progettazione di applicazioni. L'API Verified Permissions accetta richieste di autorizzazione con IsAuthorizede BatchIsautorizzate come richieste AWS API firmate agli endpoint di servizio regionali. IsAuthorizedWithToken Per testare il tuo modello di autorizzazione, puoi generare richieste con qualsiasi client API e verificare che le tue politiche restituiscano le decisioni di autorizzazione come previsto.

Ad esempio, è possibile eseguire il test IsAuthorized in un archivio di policy di esempio con la seguente procedura.

Test bench
  1. Apri la console delle autorizzazioni verificate all'indirizzo https://console.aws.amazon.com/verifiedpermissions/. Crea un policy store dal Sample policy store con il nome DigitalPetStore.

  2. Seleziona Test bench nel tuo nuovo policy store.

  3. Compila la tua richiesta di test bench dal IsAuthorizedriferimento all'API Verified Permissions. I seguenti dettagli replicano le condizioni dell'Esempio 4 che fanno riferimento all'DigitalPetesempio Store.

    1. Imposta Alice come principale. Affinché il preside agisca, scegli DigitalPetStore::User ed entraAlice.

    2. Imposta il ruolo di Alice come cliente. Scegli Aggiungi un genitoreDigitalPetStore::Role, scegli e inserisci Cliente.

    3. Imposta la risorsa come ordine «1234». Per la risorsa su cui agisce il principale, scegli DigitalPetStore::Order ed inserisci1234.

    4. La DigitalPetStore::Order risorsa richiede un owner attributo. Imposta Alice come proprietaria dell'ordine. Scegli DigitalPetStore::User ed entra Alice

    5. Alice ha richiesto di visualizzare l'ordine. Per Azione che il preside sta intraprendendo, scegliDigitalPetStore::Action::"GetOrder".

  4. Scegli Esegui richiesta di autorizzazione. In un archivio di policy non modificato, questa richiesta genera una ALLOW decisione. Nota la politica Soddisfazione che ha restituito la decisione.

  5. Scegli Politiche dalla barra di navigazione a sinistra. Consulta la politica statica con la descrizione Customer Role - Get Order.

  6. Tieni presente che Verified Permissions ha consentito la richiesta perché il responsabile ricopriva il ruolo di cliente ed era il proprietario della risorsa.

REST API
  1. Apri la console delle autorizzazioni verificate all'indirizzo https://console.aws.amazon.com/verifiedpermissions/. Crea un policy store dal Sample policy store con il nome DigitalPetStore.

  2. Annota l'ID del Policy store del tuo nuovo Policy Store.

  3. Dal riferimento IsAuthorizedall'API Verified Permissions, copia il corpo della richiesta dell'Esempio 4 che fa riferimento all'esempio DigitalPetStore.

  4. Apri il tuo client API e crea una richiesta all'endpoint di servizio regionale per il tuo policy store. Compila le intestazioni come mostrato nell'esempio.

  5. Incolla il corpo della richiesta di esempio e modifica il valore di nell'ID del policyStoreId Policy Store che hai annotato in precedenza.

  6. Invia la richiesta ed esamina i risultati. In uno DigitalPetStore policy store predefinito, questa richiesta restituisce una ALLOW decisione.

È possibile apportare modifiche alle politiche, allo schema e alle richieste nell'ambiente di test per modificare i risultati e prendere decisioni più complesse.

  1. Modifica la richiesta in modo da modificare la decisione presa in Autorizzazioni verificate. Ad esempio, modifica il ruolo di Alice Employee o modifica l'ownerattributo dell'ordine 1234 inBob.

  2. Modifica le politiche in modo da influire sulle decisioni di autorizzazione. Ad esempio, modifica la politica con la descrizione Customer Role - Get Order per rimuovere la condizione che User deve essere il proprietario della Resource e modifica la richiesta in modo che Bob desideri visualizzare l'ordine.

  3. Modifica lo schema per consentire alle politiche di prendere decisioni più complesse. Aggiorna le entità della richiesta in modo che Alice possa soddisfare i nuovi requisiti. Ad esempio, modifica lo schema User per consentire di essere membro di ActiveUsers oInactiveUsers. Aggiorna la politica in modo che solo gli utenti attivi possano visualizzare i propri ordini. Aggiorna le entità della richiesta in modo che Alice sia un utente attivo o inattivo.

Integrazione con app e SDK AWS

Per implementare Amazon Verified Permissions nella tua applicazione, devi definire le politiche e lo schema che desideri che l'app applichi. Una volta implementato e testato il modello di autorizzazione, il passo successivo è iniziare a generare richieste API dal punto di applicazione. A tale scopo, è necessario configurare la logica dell'applicazione per raccogliere i dati degli utenti e inserirli nelle richieste di autorizzazione.

In che modo un'app autorizza le richieste con autorizzazioni verificate
  1. Raccogli informazioni sull'utente corrente. In genere, i dettagli di un utente vengono forniti nei dettagli di una sessione autenticata, come un cookie JWT o di sessione web. Questi dati utente potrebbero provenire da una fonte di identità Amazon Cognito collegata al tuo policy store o da un altro provider OpenID Connect (OIDC).

  2. Raccogli informazioni sulla risorsa a cui un utente desidera accedere. In genere, l'applicazione riceve informazioni sulla risorsa quando un utente effettua una selezione che richiede all'app di caricare una nuova risorsa.

  3. Determina l'azione che l'utente desidera intraprendere.

  4. Genera una richiesta di autorizzazione a Verified Permissions con il principale, l'azione, la risorsa e le entità per il tentativo di operazione dell'utente. Verified Permissions valuta la richiesta rispetto alle politiche dell'archivio delle politiche e restituisce una decisione di autorizzazione.

  5. L'applicazione legge la risposta di autorizzazione o rifiuto di Verified Permissions e applica la decisione sulla richiesta dell'utente.

Le operazioni dell'API Verified Permissions sono integrate negli SDK. AWS Per includere le autorizzazioni verificate in un'app, integra l' AWS SDK per la lingua scelta nel pacchetto dell'app.

Per saperne di più e scaricare gli AWS SDK, consulta Strumenti per. Amazon Web Services

Di seguito sono riportati i collegamenti alla documentazione relativa alle risorse relative alle autorizzazioni verificate in vari AWS SDK.

Il seguente AWS SDK for JavaScript esempio di IsAuthorized proviene da Simplifica l'autorizzazione granulare con Amazon Verified Permissions e Amazon Cognito.

const authResult = await avp.isAuthorized({ principal: 'User::"alice"', action: 'Action::"view"', resource: 'Photo::"VacationPhoto94.jpg"', // whenever our policy references attributes of the entity, // isAuthorized needs an entity argument that provides // those attributes entities: { entityList: [ { "identifier": { "entityType": "User", "entityId": "alice" }, "attributes": { "location": { "String": "USA" } } } ] } });