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.