In un sistema distribuito aziendale, un utente di un portale Web può accedere a un sito, essere reindirizzato a un provider di federazione. Una volta effettuato l'accesso con, ad esempio, un account Facebook, tale utente è federato (single-sign-on) con ogni servizio esistente nell'azienda che si fida dello stesso provider di federazione per l'autenticazione.
La mia domanda è questa; In che modo gli utenti API dello stesso sistema possono beneficiare dello stesso lusso (single sign on)? Per quanto ho capito, le chiamate API dovrebbero essere senza stato, quindi ogni richiesta dovrebbe richiedere un'autenticazione separata.
Se ciascuna delle API distribuite, quando viene chiamata da un client, deve effettuare una chiamata al provider di federazione, ottenere l'autenticazione, passare le attestazioni all'API, quindi elaborare la richiesta dei client, mi sembra un po 'di chattare in rete .
Per chiarire, uno scenario di esempio per un client API potrebbe essere:
- Crea un cliente (API cliente)
- Crea un utente per quel cliente (API utente)
- Effettua un ordine (ordine API)
- Visualizza estratto conto (API di fatturazione)
- Visualizza rapporto cliente (API rapporto)
Come ho detto, sembra un po 'loquace per ogni API parlare con il provider di federazione su ogni richiesta.