Così sto cercando di implementare il seguente scenario:HTTP Spec: Proxy-autorizzazione e di autorizzazione intestazioni
- Un'applicazione è protetta da autenticazione di base. Diciamo che è ospitato su
app.com
- Un proxy HTTP, di fronte all'applicazione, richiede anche l'autenticazione. Esso è presente in
proxy.com
L'utilizzatore deve quindi fornire le credenziali sia per il proxy e l'applicazione nella stessa richiesta, così ha diverse coppie nome utente/password: una coppia di autenticarsi contro l'applicazione, e un altro nome utente/password per autenticarsi contro il proxy.
Dopo aver letto le specifiche, non sono molto sicuro su come dovrei implementarlo. Quello che stavo pensando di fare è:
- L'utente effettua una richiesta HTTP al proxy senza alcun tipo di autenticazione.
- Il proxy risponde a
407 Proxy Authentication Required
e restituisce un'intestazioneProxy-Authenticate
nel formato di:"Proxy-Authenticate: Basic realm="proxy.com"
.
Domanda: L'intestazioneProxy-Authenticate
è impostata correttamente? - Il client riprova la richiesta con un'intestazione
Proxy-Authorization
, ovvero la rappresentazione Base64 del proxyusername:password
. - Questa volta il proxy autentica la richiesta, ma poi l'applicazione risponde con un'intestazione
401 Unauthorized
. L'utente è stato autenticato dal proxy, ma non dall'applicazione. L'applicazione aggiunge un'intestazioneWWW-Authenticate
alla risposta comeWWW-Authenticate: Basic realm="app.com"
. Domanda: questo valore di intestazione è corretto vero? - Il client riprova la richiesta con un'intestazione
Proxy-Authorization
e un'intestazioneAuthorization
valutata con la rappresentazione Base64 dell'appusername:password
. - A questo punto, il proxy autentica correttamente la richiesta, inoltra la richiesta all'applicazione che autentica anche l'utente. E il cliente ottiene finalmente una risposta.
L'intero flusso di lavoro è corretto?
Bene, grazie per avere gli header Proxy- * spiegati qui, li stavamo cercando. Ma hai risolto il tuo problema? Perché la domanda è ancora aperta? –
Dato che hai appena chiesto una convalida generale dell'approccio, ho cercato di aggiungere del colore addizionale nella mia risposta attorno ad altre permutazioni di questa configurazione. Tuttavia, se stai facendo questa domanda perché hai provato quello che hai descritto e hai riscontrato un errore specifico, ti preghiamo di aggiornare la domanda per includere tale errore; anche se ho fatto del mio meglio per convalidare ciò che hai postato, il vero test sarebbe semplicemente provarlo e vedere cosa succede. –