Tag Archives: oauth

OAuth2-Request in RSpec testen

23 Mär

Da mich die “Fehlersuche” insgesamt 2 Tage beschäftigt hat und ich langsam glaube, dass ich für das Testen der ginkgo API insgesamt mehr Zeit gebraucht habe, als für die Implementierung, möchte ich zumindest eine Erkenntnis in die Welt streuen ;-) .

Während es in Cucumber-Tests sehr einfach ist einen authentifizierten OAuth2 HTTP-Request hinzubekommen (einfach nur den Authentication-Header setzen), gestaltet sich das in RSpec-Test schwerer. Das ist auch klar, weil viele helfende Komponenten von Rails richtigerweise nicht zum Einsatz kommen, um wirklich nur die aktuell betrachtete Komponente zu testen.

Um es kurz zu machen, für einen authentifizierten OAuth2 Request in RSpec-Tests benötigt das request-Objekt die beiden Parameter oauth.strategies und token. Also z.B. :

  def prepare_authenticated_access_token_request
# Create a valid, authorized access token
token = Oauth2Token.create :user => @resource_owner, :client_application => @client_application
# Configure the request object so that it is recognized as a OAuth request
request.env["oauth.strategies"] = [:oauth20_token, :token]
request.env["oauth.token"] = token
end

Für alle, die OAuth1-Requests erstellen wollen, sei auf configure_oauth eines TestRequests hingewiesen:

    ActionController::TestRequest.use_oauth=true
request.configure_oauth(@resource_owner,token)

Ginkgo API – aber sicher!

7 Feb

Verzeiht mir das kleine Wortspiel… :)

Pünktlich zum Safer Internet Day ist nun eine Möglichkeit gefunden und umgesetzt, um die ginkgo API gegen unberechtigten Zugriff zu schützen.

Die selbst gesteckten Anforderungen waren hart:

  • Jede App, die auf die API zugreift, soll erkannt werden (z.B. zwecks Nutzungsauswertungen und Missbrauchsvorbeugung)
  • Apps sollen “öffentliche” Informationen auslesen können, ohne dass ein Nutzer sie dazu autorisiert hätte (Event-Mediastream, Call for Papers)
  • Nutzer-spezifische Aktionen sollen nur durch vom Nutzer autorisierte Apps ausgeführt werden können (Freund hinzufügen, Status posten, Nutzerinformationen ändern)
  • Apps dürfen keine nur lesbaren oder Systemfelder setzen können (Eventname ändern, Eventcreator ändern)
  • Apps dürfen keine “privaten” Felder auslesen können (E-Mailadresse eines anderen Nutzers lesen)

Sicherheit ist hier also nicht nur auf Methoden- sondern auch auf Feldbasis zu beachten.
Weiterlesen

Ginkgo-API: Erste Designentscheidungen

15 Dez

Die letzten Tage habe ich mich damit beschäftigt, wie Anforderungen in den Bereichen Sicherheit, Versionierung, Dokumentation, Ressourcen-/Repräsentationenaufbau in Rails umsetzbar sind.
Weiterlesen

SMM Tool APIs und ihre Möglichkeiten – Teil 3

28 Nov

Wie angekündigt, werden in diesem dritten Teil nun die letzten 4 Tools auf ihre APIs hin untersucht. Dabei handelt es sich um Rankur, Ubervu, Gigya und Peoplebrowsr. Nicht alle Tools bieten hier eine Dokumentation an, jedoch konnten in allen Fällen mindestens grundlegende Informationen ausfindig gemacht werden.

Die Granularität der Daten, lässt sich natürlich nur mit einer ausreichenden Dokumentation der APIs einschätzen. War diese nicht vorhanden, so gibt dieser Beitrag zumindest einen grundlegenden Einblick in die jeweiligen Möglichkeiten.

Weiterlesen