Hai bisogno di aiuto per l'autorizzazione / autorizzazione di un'API REST per un'app SAAS.
Avevo fatto un prototipo di un'app SAAS e per le autorizzazioni del client SAAS, avrei impostato l'API per richiedere un'intestazione chiamata CLIENT-ID
. In questo modo, l'API filtra tutte le visualizzazioni dal Client connesso. Questa intestazione è obbligatoria.
La prossima cosa che sto testando è la creazione del back-end Super Admin
e sto pensando che il modo migliore sia utilizzare le stesse API, ma poi avere i permessi di controllo appropriati.
Ora il super amministratore dovrebbe essere in grado di "lavorare su più client" ad es. quando fanno una richiesta di GET
per /clients
, dovrebbero essere in grado di vedere un elenco di tutti i client rispetto a un amministratore cliente che vedrebbe solo il proprio coz del client che l'intestazione CLIENT-ID
filtrerebbe per garantire che la vista restituisca il risultati corretti Per consentire al Super Admin di fare ciò, devo rendere l'intestazione CLIENT-ID
non obbligatoria per il loro ruolo?
Quindi il mio problema è, come posso fornire un'API coerente per fornire entrambi i tipi di ruoli?
Opzione 1:
Per ogni API, devo verificare il ruolo dell'utente, se è un ruolo Super Admin, quindi salta l'applicazione dell'intestazione CLIENT-ID
. È fattibile. Il problema è che, se il Super Admin vuole ottenere un singolo client, ora devo richiedergli di fornire l'intestazione CLIENT-ID o devo introdurlo come parametro di filtro. Il mio problema qui ora è che ho degli scenari extra da controllare e sto pensando di non aver nemmeno pensato a tutti gli scenari possibili.
Opzione 2:
Crea diverse visualizzazioni REST per l'amministratore. Questo però duplica tonnellate di codice e non è bello.
Quindi sto gravitando verso l'opzione 1, ma sembra diventare complessa con ogni scenario diverso. O non c'è alternativa e devo solo cuocere in questi scenari?
Sto costruendo le API usando Django Rest Framework così anche qualsiasi puntatore specifico per il framework sarebbe benvenuto.