HTTP-Spezifikation: Proxy-Autorisierungs- und Autorisierungsheader

So, ich bin versucht zu implementieren, das folgende Szenario:

  • Eine Anwendung ist geschützt durch eine Basis-Authentifizierung. Lassen Sie uns sagen, es ist gehostet auf app.com
  • Einen HTTP-proxy, vor der Anwendung, die eine Authentifizierung erfordert, als gut. Es ist gehostet auf proxy.com

Muss der Benutzer daher bieten Anmeldeinformationen für die proxy-und die Anwendung in der gleichen Wunsch, so hat er verschiedene Benutzernamen/Passwort-Paare: ein paar zum authentifizieren sich gegen den Antrag, und ein Benutzername/Passwort paar zum authentifizieren sich gegen den proxy.

Nach dem Lesen der specs, ich bin mir nicht wirklich sicher, wie ich das umsetzen sollte. Das, was ich dachte zu tun ist:

  1. Der Benutzer eine HTTP-Anforderung an den proxy-ohne irgendeine Art der Authentifizierung.
  2. Der proxy Antworten 407 Proxy Authentication Required und gibt einen Proxy-Authenticate header im format: "Proxy-Authenticate: Basic realm="proxy.com".
    Frage: Ist das Proxy-Authenticate header korrekt gesetzt?
  3. Der client dann wiederholt die Anfrage mit einer Proxy-Authorization header, das ist die Base64-Darstellung der proxy -username:password.
  4. Dieses mal der proxy die Anforderung authentifiziert, aber dann die Applikation antwortet mit einem 401 Unauthorized header. Wurde der Benutzer authentifiziert den proxy-Server, aber nicht von der Anwendung. Die Anwendung fügt eine WWW-Authenticate - header die Antwort-wie WWW-Authenticate: Basic realm="app.com". Frage: diesen header-Wert ist das richtige?
  5. Der client wiederholt wieder die Anforderung, dass mit einem Proxy-Authorization - header, und ein Authorization header geschätzt, mit der die Base64-Darstellung der app ist username:password.
  6. An dieser Stelle ist, dass der proxy erfolgreich authentifiziert die Anforderung, leitet die Anfrage an die Anwendung authentifiziert den Benutzer. Und der Kunde bekommt endlich eine Antwort zurück.

Ist der gesamte workflow richtig?

InformationsquelleAutor der Frage Mark | 2012-04-05

Schreibe einen Kommentar