Appendice A. Casi d'uso
Questa appendice descrive diversi modi in cui questa specifica può essere utilizzata, inclusa la descrizione di alcune scelte che potrebbero dover essere fatte. Alcune scelte sono indipendenti e possono essere utilizzate in combinazione, mentre alcune scelte sono correlate.
A.1. Registrazione client dinamica aperta versus protetta
A.1.1. Registrazione client dinamica aperta
I server di autorizzazione che supportano la registrazione aperta consentono di effettuare registrazioni senza token di accesso iniziale. Ciò consente a tutto il software client di registrarsi presso il server di autorizzazione.
A.1.2. Registrazione client dinamica protetta
I server di autorizzazione che supportano la registrazione protetta richiedono che un token di accesso iniziale venga utilizzato quando si effettuano richieste di registrazione. Sebbene il metodo con cui un client o uno sviluppatore riceve questo token di accesso iniziale e il metodo con cui il server di autorizzazione convalida questo token di accesso iniziale siano al di fuori dell'ambito di questa specifica, un approccio comune è che lo sviluppatore utilizzi un portale di pre-registrazione manuale presso il server di autorizzazione che emette un token di accesso iniziale allo sviluppatore.
A.2. Registrazione senza o con dichiarazioni software
A.2.1. Registrazione senza dichiarazione software
Quando una dichiarazione software non viene utilizzata nella richiesta di registrazione, il server di autorizzazione deve essere disposto a utilizzare i valori dei metadati del client senza che siano firmati digitalmente o MACati (e quindi attestati) da alcuna autorità. (Si noti che questa scelta è indipendente dalla scelta Aperta versus Protetta e che un token di accesso iniziale è un'altra possibile forma di attestazione.)
A.2.2. Registrazione con una dichiarazione software
Una dichiarazione software può essere utilizzata in una richiesta di registrazione per fornire l'attestazione da parte di un'autorità per un insieme di valori dei metadati del client. Questo può essere utile quando il server di autorizzazione desidera limitare la registrazione al software client attestato da un insieme di autorità o quando desidera sapere che più richieste di registrazione si riferiscono allo stesso software client.
A.3. Registrazione da parte del client o dello sviluppatore
A.3.1. Registrazione da parte del client
In alcuni casi d'uso, il software client si registrerà dinamicamente presso un server di autorizzazione per ottenere un identificatore client e altre informazioni necessarie per interagire con il server di autorizzazione. In questo caso, nessun identificatore client per il server di autorizzazione è confezionato con il software client.
A.3.2. Registrazione da parte dello sviluppatore
In alcuni casi, lo sviluppatore (o il software di sviluppo utilizzato dallo sviluppatore) pre-registrerà il software client presso il server di autorizzazione o un insieme di server di autorizzazione. In questo caso, i valori dell'identificatore client per il server o i server di autorizzazione possono essere confezionati con il software client.
A.4. ID client per istanza client o per software client
A.4.1. ID client per istanza di software client
In alcuni casi, ogni istanza distribuita di un software client si registrerà dinamicamente e otterrà valori di identificatore client distinti. Questo può essere vantaggioso, ad esempio, se viene utilizzato il flusso di codice, poiché consente anche a ciascuna istanza client di avere il proprio segreto client. Questo può essere utile per i client nativi, che non possono mantenere la segretezza di un valore di segreto client confezionato con il software, ma che potrebbero essere in grado di mantenere la segretezza di un segreto client per istanza.
A.4.2. ID client condiviso tra tutte le istanze di software client
In alcuni casi, ogni istanza distribuita di un software client condividerà un valore di identificatore client comune. Ad esempio, questo è spesso il caso per i client nel browser che utilizzano il flusso implicito, quando non è coinvolto alcun segreto client. Particolari server di autorizzazione potrebbero scegliere, ad esempio, di mantenere una mappatura tra i valori delle dichiarazioni software e i valori degli identificatori client e restituire lo stesso valore di identificatore client per tutte le richieste di registrazione per un particolare software. Le circostanze in cui un server di autorizzazione lo farebbe e le caratteristiche specifiche della dichiarazione software richieste in questo caso sono al di fuori dell'ambito di questa specifica.
A.5. Registrazione con o senza stato
A.5.1. Registrazione client con stato
In alcuni casi, i server di autorizzazione manterranno lo stato sui client registrati, tipicamente indicizzando questo stato utilizzando il valore dell'identificatore client. Questo stato includerebbe tipicamente i valori dei metadati del client associati alla registrazione del client e possibilmente altro stato specifico dell'implementazione del server di autorizzazione. Quando viene utilizzata la registrazione con stato, possono essere supportate operazioni per recuperare e/o aggiornare questo stato. Un possibile insieme di operazioni sulle registrazioni con stato è descritto in [RFC7592].
A.5.2. Registrazione client senza stato
In alcuni casi, i server di autorizzazione saranno implementati in modo da consentire loro di non mantenere alcuno stato locale sui client registrati. Un mezzo per farlo è codificare tutto lo stato di registrazione nel valore dell'identificatore client restituito, e possibilmente crittografare lo stato per il server di autorizzazione per mantenere la riservatezza e l'integrità dello stato.