2017-02-23 3 views
1

Wir haben einen Testserver mit HTTP-Authentifizierung.Cloudflare (und andere DNS-basierte CDNs) - Caching mit Auth

Cloudflare wird zum CDN-Caching verwendet.

Der Testserver verfügt über eine Authentifizierung, um zu verhindern, dass er von Google indiziert wird (da die Datei robots.txt gelegentlich gelöscht wurde!).

Kann Cloudflare Inhalte zwischenspeichern, wenn wir eine Authentifizierung auf diesem Server haben?

Wenn ja, wie macht es das? Ich dachte, der Inhalt würde direkt zwischen dem Server und dem Browser übertragen werden.

+0

CF sollte die Authentifizierung mit übergeben und die statischen Ressourcen zwischenspeichern. – Jules

Antwort

0

Ich bin kein Experte für Cloudflare CDN. Aber lassen Sie mich Ihnen im Allgemeinen sagen, wie das funktioniert oder wie es in Akamai funktioniert.

Wenn Sie eine Authentifizierung geschützt Website haben sagen https://secure.test.com/admin

so, wenn die Anforderung an CDN gesendet wird. CDN prüft, ob die eingehende Anfrage ein Token (Cookie) hat, das sie verstehen kann. Wenn nicht, wird die Anfrage an Ihren Ursprungsserver gesendet. Aber vorher wird etwas wie /token.php?return=/admin angehängt

Jetzt Ursprungsserver wird den Benutzer authentifizieren. Sobald dies erledigt ist, wird token.php im Ursprungsserver ausgeführt, wodurch ein eindeutiges verschlüsseltes Token zusammen mit anderen Anwendungs-Cookies erzeugt wird. Grundsätzlich ist der Schlüssel, den Sie in dieser token.php für die Generierung von Verschlüsselungs-Cookies verwenden, derselbe, den Sie in Ihrer CDN-Konfiguration hinzufügen.

Also die nächste Anforderung, das in für/admin kommt eine CDN-Token hat, die für Authentizität mit dem Schlüssel werden überprüfen, CDN, die Sie in CDN config (die gleichen wie Herkunfts). Wenn es erfolgreich ist, wird es den Inhalt von seinem Cache Server bereitstellen.

Hinweis: Stellen Sie sicher, dass der CDN-Token-Ablauf kürzer ist als die Anwendungscookies. Sagen Sie, Ihr Anwendungssitzungscookie ist 8 Stunden lang, dann ist es am besten, cdn cookie auf 1 Stunde oder so einzustellen. Dadurch wird CDN einmal in einer Stunde mit Ihrem Ursprung Kontakt aufnehmen und seinen Token erneuern lassen. Hoffe ich habe es nicht verwirrender gemacht ;-)

+0

Re 'append etwas wie /token.php? Return =/admin', meinst du mit der URL? Oder der Keks? Wenn es die URL ist, dann birgt das nicht das Risiko, die Webanwendung zu beschädigen. Wenn es der Cookie ist, würde ich die gleiche Logik verwenden. – Snowcrash

+0

Und ich bin nicht klar, was Sie mit 'execute token.php im Ursprungsserver 'meinen. Sicherlich wird diese Datei nicht auf dem Ursprungsserver existieren. – Snowcrash

+0

Hallo, gut token.php war nur ein Beispiel, das könnte auch von jeder anderen Programmversionsdatei sein. Normalerweise wird diese Datei vom CDN-Provider bereitgestellt. Im Grunde erzeugt diese Datei einen Cookie, nachdem der Benutzer im Ursprung authentifiziert wurde und legt den Cookie im Benutzerbrowser fest, so dass das CDN beim nächsten Aufruf des Browsers weiß, dass dies ein authentischer Benutzer ist. – Vinod