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. I PEP sono relativamente semplici rispetto ai PDP. Un PEP è responsabile solo della richiesta e della valutazione di una decisione di autorizzazione e non richiede alcuna logica di autorizzazione. I PEP, a differenza dei PDP, non possono essere centralizzati 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. I PEP possono essere applicati alle API, ai microservizi, ai livelli di Backend for Frontend (BFF) o a qualsiasi punto dell'applicazione in cui è desiderato o richiesto il controllo degli accessi. Rendere i PEP pervasivi in 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 integrare i PEP 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, le API 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 includere i PEP 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 che i PEP siano integrati nella logica dell'applicazione stessa. Non esiste un'unica sede in cui includere i PEP, ma considerate la possibilità di utilizzare il 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'API RESTful 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 PEP. 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
I PEP devono includere una logica per valutare i risultati di una decisione di autorizzazione. Quando i PDP vengono esposti come API, 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.