Sto cercando consigli su come possiamo implementare l'autenticazione e l'autorizzazione per la multitenancy con un numero leggermente diverso di scenari.
Stiamo costruendo una serie di API che, tra l'altro, sono internamente accessibili (all'interno dell'organizzazione) mentre altre saranno accessibili esternamente (Internet).
Quelli internamente e direttamente accessibili all'interno dell'organizzazione possono essere "indirettamente" accessibili tramite servizi più astratti esposti esternamente.
a causa della natura complessa della nostra attività (società di telecomunicazioni), i consumatori delle API dell'esterno saranno disponibili in diverse forme. Alcune saranno le nostre sussidiarie, mentre altre saranno terze parti, venditori e sviluppatori.
Prenderò in considerazione che, indipendentemente dal fatto che siano grandi consumatori di organizzazioni o singoli sviluppatori, sono tutti identificabili in modo univoco allo stesso modo.
La parte difficile ora è che in determinati scenari le risorse esposte pubblicamente potrebbero non essere accessibili a determinati consumatori. Esempio:
- La sussidiaria X può accedere a tutte le risorse e alle operazioni CRUD sulla risorsa Y
- Tuttavia, la terza parte Z può solo recuperare Probabilmente mi sto avventurando nel territorio dell'ACL ora ...
Inoltre, per aggiungere complessità alla questione, ci sono alcuni scenari di "separazione strutturale" (imposti dal governo) che giustificano la segregazione dei dati, ma non andrò più in basso in quella tana del coniglio.
C'è anche il problema di più titolari che accedono a un sistema che non soddisfa la multitenancy. :)
Quindi c'è molto, quindi mi chiedo quali sono le opinioni, i consigli e l'approccio delle persone in merito.
Speriamo che Oauth 2.0 in combinazione con OpenID con una soluzione ACL personalizzata possa funzionare.
EDIT:
Scuse hanno avuto problemi con il mio cellulare durante la pubblicazione di domande e metà di esso è stato tagliato.
Solo alcuni consigli generali sull'approccio.
È qualcosa che OpenID e Oauth2 con entitlement server potrebbero soddisfare?