who should issue the client certificate?
Un'autorità approvata che è considerata affidabile dal fornitore di servizi API. Non è necessario il fornitore di servizi API stesso (sebbene sia comune), questa attività può essere delegata a un'altra entità che seguirà i requisiti stabiliti dal provider API. Se delegato, il provider API deve essere certo che solo i client legittimi e debitamente autenticati ricevono i certificati client.
Certamente, non è compito del cliente creare certificati client.
Aggiornamento
A seconda dei casi particolari, potrebbero esserci diversi scenari comuni:
Il provider di servizi - emette tutti i certificati client. Il server API è configurato per fidarsi solo dei certificati emessi dalle CA del fornitore di servizi.
Questo è l'approccio più semplice. Il client genera CSR e lo invia alla CA del fornitore di servizi. Quando la richiesta è correttamente autenticata e convalidata, il client riceve un certificato firmato che viene poi utilizzato per accedere all'API.
Pro: il provider di servizi tiene traccia di tutti i singoli client e i loro certificati.
Contro: il fornitore di servizi deve mantenere tutta l'infrastruttura per lavorare con la convalida delle richieste dei clienti e mantenerle (rinnovare, riemettere, revocare, ecc.). Potrebbe avere un notevole overhead (per entrambe le parti) quando le entità client non sono strettamente definite. Cioè, quando hai solo 5 clienti, questo approccio è certamente buono. Quando ne hai migliaia, questo potrebbe essere un problema, perché il fornitore di servizi dovrà seguire lo SLA.
- ci sono relazioni B2B (business-to-business). La CA del fornitore di servizi può rilasciare una certificazione incrociata qualificata (con i vincoli richiesti) alla CA di emissione del cliente. La CA dell'organizzazione cliente rilascia il certificato al proprio personale per accedere all'API del provider di servizi remoto
Questa opzione è necessaria per disporre di un PKI privato operabile in entrambe le organizzazioni, provider di servizi e organizzazione client. L'organizzazione cliente può avere un numero elevato di entità client a cui è consentito accedere al fornitore di servizi.
Pro: riduce i costi di gestione dei certificati sul fornitore di servizi. Soprattutto quando il numero esatto e il nome delle entità client non sono noti in anticipo (ad esempio, l'accesso è concesso su base di partenza). Consente una migliore gestione del ciclo di vita dei certificati all'interno dell'organizzazione del cliente.
Contro: richiede un trust qualificato tra l'organizzazione del cliente e l'organizzazione del fornitore di servizi. Ciò apre un buco quando l'organizzazione del cliente può erroneamente valutare i certificati client e non è considerata attendibile. Questa domanda viene comunemente risolta utilizzando le verifiche PKI da parte di una società di revisione di terze parti. Ci sarà una politica scritta che descrive tutte le relazioni tecniche e legali tra le organizzazioni. Ma questo approccio è anche costoso (audit, politiche di scrittura, ecc.).
In alcuni casi, questo scenario è cresciuto a più di solo 2 organizzazioni e per limitare un numero di certificati incrociati, una CA Bridge è costruita per organizzare un trust tra le organizzazioni.