Uso personalizzato dell'intestazione Autorizzazione in un'API REST

9

Sto costruendo una API REST in cui i client sono autenticati utilizzando i certificati client. In questo caso, un client non è un singolo utente, ma una specie di livello di presentazione. Gli utenti sono autenticati usando un approccio personalizzato ed è responsabilità del livello di presentazione verificare che questo sia fatto correttamente (nota: so che questo non è l'approccio corretto, ma l'API non è pubblica).

Vorrei passare il nome utente per ogni richiesta (non la password), ma non sono sicuro di dove farlo. Sarebbe una buona idea usare l'intestazione Autorizzazione?

    
posta Matsen75 02.04.2013 - 14:34
fonte

2 risposte

20

Utilizzare l'intestazione Autorizzazione sembra la cosa giusta da fare. È l'intero scopo dell'intestazione di autorizzazione.

Da link :

The "Authorization" header field allows a user agent to authenticate itself with an origin server -- usually, but not necessarily, after receiving a 401 (Unauthorized) response. Its value consists of credentials containing the authentication information of the user agent for the realm of the resource being requested.

Se hai il tuo schema di autenticazione, documentalo, ma non è necessario reinventare la ruota.

    
risposta data 13.08.2014 - 17:44
fonte
3

Non ti consiglierei di fare un uso non standard di un'intestazione HTTP standard. Principalmente perché può essere fuorviante per altri sviluppatori che sanno come l'intestazione Authoriziation debba essere utilizzata nell'autenticazione HTTP, ma anche per evitare potenziali problemi con altre parti dello stack con consapevolezza in conflitto della stessa intestazione della richiesta.

In ogni caso, non c'è nulla che ti impedisca di utilizzare un'intestazione X-Authorization-User personalizzata, non standard, specificamente per i tuoi scopi.

    
risposta data 02.04.2013 - 16:14
fonte

Leggi altre domande sui tag