Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Download (5Mb) - oops/ - Oldenburger Online-Publikations-Server
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
7.3 Backend 111<br />
Abbildung 7.3: Überblick beispielhafter Einbindungen von Rack Middleware in der Rack<br />
Architektur – als Authentifizierung- oder Komprimierung-Maßnahme<br />
Eine Middleware-Komponente kann auch als ein Filter angesehen werden, die z.B. die ursprüngliche<br />
Anfrage abfangen und bearbeiten kann oder die formulierte Antwort einer Anfrage weiter bearbeiten<br />
kann. Darüber hinaus kann der gesamte Vorgang unterbrochen werden, wenn z.B. eine Authentifizierung<br />
fehlschlagt. Darüber hinaus können Rack Middleware Komponenten für Caching, Überwachung<br />
der Performanz und ähnliche Konzepte eingeführt werden.<br />
Der letzte Anwendungsfall (Vorgang unterbrechen) wird im Fall des rack-authenticate<br />
Gems ausgenutzt: gemäß dem standardisierten Verfahren 19 zur HMAC wird die Bearbeitungskette<br />
aus der Abbildung 7.3 abgebrochen und eine 401 Unauthorized HTTP Antwort zurückgeliefert,<br />
falls eine Überprüfung (s.u.) fehlschlägt.<br />
Die Überprüfung einer HMAC-Signatur berücksichtigt die Handhabung verschiedener Parameter<br />
wie die private Schlüssel und den dazugehörigen Bezeichner (in diesem Fall der Name der kontextbewussten<br />
Anwendung, Klasse ContextAwareApplication), das Datum, an dem die Anfrage<br />
formuliert wurde, sowie im Fall von POST Anfragen, die Handhabung des MD5 Wertes. Anhand<br />
dieser Parameter wird zur hauptsächlichen Überprüfung der privaten Schlüssel gelungen – in dieser<br />
Phase wird der Bezeichner benutzt, um das in der Datenbank gespeicherten Wert (die private,<br />
von Frontend und Backend geteilte Schlüssel) auszulesen. Der letzte Schritt bei der HMAC Authentifizierung<br />
ist die erneute Berechnung des Hashwertes anhand der ausgelesenen privaten Schlüssel.<br />
Wenn das entstehende Wert mit dem übermittelten übereinstimmt, wird die Anfrage als authentifiziert<br />
bezeichnet und weiter in die Bearbeitungskette zugelässt.<br />
Die genannten Erweiterungen zu dem rack-authenticate Gem wurden temporär in der Entwicklungsphase<br />
im Quelltext durchgeführt, um die Überprüfungsphase der HMAC-Signatur einzuteilen,<br />
zu dem Zweck, eine eventuelle fehlerhafte Überprüfung identifizieren zu können. Darüber hinaus<br />
wurde eine Erweiterung der Hashwert-Berechnung (s.o.) durchgeführt, in dem die performantere, mit<br />
Ruby 1.9 mitgelieferte Bibliothek OpenSSL für die Berechnung des Hashwertes angewendet wurde.<br />
19 RFC 2104: http://www.ietf.org/rfc/rfc2104.txt