Implementazione di un PEP - AWS Guida prescrittiva

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 di un PEP

Un punto di applicazione delle politiche (PEP) è responsabile della ricezione delle richieste di autorizzazione che vengono inviate al punto decisionale delle politiche (PDP) per la valutazione. Un PEP può trovarsi in qualsiasi punto dell'applicazione in cui è necessario proteggere dati e risorse o in cui viene applicata la logica di autorizzazione. PEPs sono relativamente semplici rispetto PDPs a. Un PEP è responsabile solo della richiesta e della valutazione di una decisione di autorizzazione e non richiede alcuna logica di autorizzazione. PEPs, al contrario PDPs, non può essere centralizzato in un'applicazione SaaS. Questo perché l'autorizzazione e il controllo degli accessi devono essere implementati in un'applicazione e nei suoi punti di accesso. PEPs può essere applicato ai microservizi APIs, ai livelli di Backend for Frontend (BFF) o a qualsiasi punto dell'applicazione in cui è desiderato o richiesto il controllo degli accessi. PEPs La pervasività di un'applicazione garantisce che l'autorizzazione venga verificata spesso e in modo indipendente in più punti.    

Per implementare un PEP, il primo passo è determinare dove applicare il controllo degli accessi in un'applicazione. Considerate questo principio quando decidete dove PEPs deve essere integrato nella vostra applicazione: 

Se un'applicazione espone un'API, dovrebbe esserci l'autorizzazione e il controllo degli accessi su quell'API.

Questo perché in un'architettura orientata ai microservizi o ai servizi, APIs fungono da separatori tra le diverse funzioni dell'applicazione. È opportuno includere il controllo degli accessi come checkpoint logici tra le funzioni dell'applicazione. Ti consigliamo vivamente di includerla PEPs come prerequisito per l'accesso a ciascuna API in un'applicazione SaaS. È anche possibile integrare l'autorizzazione in altri punti di un'applicazione. Nelle applicazioni monolitiche, potrebbe essere necessario PEPs integrarle nella logica dell'applicazione stessa. Non esiste un'unica posizione in cui PEPs includere, ma considera l'utilizzo del principio dell'API come punto di partenza.

Richiesta di una decisione di autorizzazione

Un PEP deve richiedere una decisione di autorizzazione al PDP. La richiesta può assumere diverse forme. Il metodo più semplice e accessibile per richiedere una decisione di autorizzazione consiste nell'inviare una richiesta o una query di autorizzazione a un' RESTful API esposta dal PDP (OPA o Verified Permissions). Se utilizzi le autorizzazioni verificate, puoi anche richiamare il IsAuthorizedmetodo utilizzando l' AWS SDK per recuperare una decisione di autorizzazione. L'unica funzione di un PEP in questo schema è quella di inoltrare le informazioni necessarie alla richiesta o alla query di autorizzazione. Ciò può essere semplice: basta inoltrare una richiesta ricevuta da un'API come input al PDP. Esistono altri metodi per creare. PEPs Ad esempio, è possibile integrare un OPA PDP localmente con un'applicazione scritta nel linguaggio di programmazione Go come libreria invece di utilizzare un'API.

Valutazione di una decisione di autorizzazione

PEPs devono includere una logica per valutare i risultati di una decisione di autorizzazione. Quando PDPs vengono esposte come APIs, la decisione di autorizzazione è probabilmente in formato JSON e restituita da una chiamata API. Il PEP deve valutare questo codice JSON per determinare se l'azione intrapresa è autorizzata. Ad esempio, se un PDP è progettato per fornire una decisione di autorizzazione booleana di consentire o negare l'autorizzazione, il PEP potrebbe semplicemente controllare questo valore e quindi restituire il codice di stato HTTP 200 per consentire e il codice di stato HTTP 403 per negare. Questo modello di incorporazione di un PEP come prerequisito per l'accesso a un'API è un modello facilmente implementabile e altamente efficace per implementare il controllo degli accessi su un'applicazione SaaS. In scenari più complicati, il PEP potrebbe essere responsabile della valutazione del codice JSON arbitrario restituito dal PDP. Il PEP deve essere scritto in modo da includere la logica necessaria per interpretare la decisione di autorizzazione restituita dal PDP. Poiché è probabile che un PEP venga implementato in molti punti diversi dell'applicazione, consigliamo di impacchettare il codice PEP come libreria o artefatto riutilizzabile nel linguaggio di programmazione preferito. In questo modo, il PEP può essere facilmente integrato in qualsiasi punto dell'applicazione con rielaborazioni minime.