Sto ancora avvolgendo la mia attenzione su REST, ma mi chiedo se qualcuno possa aiutare con suggerimenti o approcci al controllo dell'accesso basato sui ruoli per un servizio RESTful, in particolare dal punto di vista della protezione dei dati e di come potrebbero essere gli URL Guarda. Probabilmente è meglio prendere in considerazione un esempio:
Supponiamo di avere un servizio REST per i clienti e di dividere gli utenti di questo servizio REST in ruoli di amministratore, editor e lettore:
- Gli amministratori possono modificare tutti gli attributi di una risorsa cliente
- Gli editori possono cambiare solo alcuni
- I lettori possono solo visualizzarli.
I diritti di controllo degli accessi sono assegnati individualmente alle entità Clienti. Quindi, ad esempio, un utente del servizio potrebbe avere diritti di amministratore per i clienti 1,2 e 3, ma l'accesso Editor a 4,5 e l'accesso Reader a 7,8,9.
Ora considera l'utente che chiama il servizio. Qual è un buon modo per separare l'elenco dei clienti per l'utente corrente?
GET / cliente - questo potrebbe ottenere un elenco di tutti i clienti a cui l'utente corrente ha accesso Admin \ Editor \ Reader. Ma poi su ciascun Cliente il consumatore avrebbe bisogno di un'indicazione sul ruolo che hanno.
O sarebbe "meglio" avere qualcosa di simile
GET / Cliente / Amministratore : restituisce tutti i clienti a cui l'utente corrente ha accesso come amministratore.
Cerca solo alcuni puntatori di alto livello o leggi in modo decente per proteggere \ filtro le risorse in base ai ruoli dell'utente corrente.