mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 18.04.2024 04:57 Benutzername: Passwort: Auto-Login

Thema: Benutzer Authentifizierung einer API vom 11.08.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Benutzer Authentifizierung einer API
Autor Nachricht
choise
Threadersteller

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Mi 11.08.2010 13:01
Titel

Benutzer Authentifizierung einer API

Antworten mit Zitat Zum Seitenanfang

Hi,

ich bin momentan an einem kleinen Projekt dran.
Auf meinem Server hab ich eine API, welche Daten durch Aufruf bestimmter URLs mit verschiedenen Parametern als JSON-Objekt zurück liefert (atm simpel über http).

Auf diese API greifen verschiedene Systeme mit verschiedenen Programmiersprachen zu.

Als zweiten Schritt möchte ich nun eine Benutzer Authentifizierung darüber setzen, damit ein User auch nur die Daten abgreifen kann, welche auch für ihn bestimmt sind.

Meine Frage: Wie stell ich das am besten an?
Ich dachte dabei erstens daran die API in eine REST API umzuschreiben, damit die PUT/GET/POST/DELETE Requests (die momentan über einzelne urls laufen) schön sauber und möglichst plattformübergreifend funktionieren.

Mit Rest könnte ich doch dann auch eine einigermaßen "sichere" Authentifizierung des Benutzers durchführen oder? Leider bin ich da noch nicht so tief drin, deshalb frage ich hier erstmal um Rat. Ist es okay, den user bei jedem Request zu authentifizieren?

Wie gehe ich am besten an die Sache mit einem "REST Server" (in PHP) an und die Authentifizierung dieser Requests?

Für jeden Tipp und Link bin ich dankbar.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Mi 11.08.2010 13:47
Titel

Antworten mit Zitat Zum Seitenanfang

Am einfachsten ists wohl einen AuthService zu implementieren:

Code:

    Service ------------>  Request -------------> Response
  __________________________________________________________

     Auth ------------>  user + pw -.----------> authToken
           
  Service1 ------> data + authToken ---------> Result



Blöde Visualisierung - aber Prinzip ist denke ich klar. Du holst als erstes ein Token, das im weiteren Verlauf zur Authentifizierung dient (und auch eine Expire-Time besitzt)

Jeder Service, der geschützt ist, muss um die Abfrage dieses Tokens erweitert werden.

Eine andere Möglichkeit wäre, es wie Twitter zu machen OAuth zu benutzen. Ist aber was komplizierter:

http://hueniverse.com/2008/10/beginners-guide-to-oauth-part-iii-security-architecture/


Zuletzt bearbeitet von bacon am Mi 11.08.2010 13:47, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
choise
Threadersteller

Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht: Männlich
Verfasst Mi 11.08.2010 14:26
Titel

Antworten mit Zitat Zum Seitenanfang

ich wollte mir eig so wenig stress wie möglich machen. Grins


das mit dem authtoken ist zwar eine nette sache, dennoch muss ich mich dann um expire times, mit dem speichern des tokens in einer datenbank usw befassen.

wie sieht deine meinung zu meiner "methode" aus?
ich hab halt immer bedenken, irgendwelche daten über http zu versenden.evtl könnte ich das noch etwas per https oder ssl absichern, aber hm....

// ich könnte ja Digest Authentication verwenden um meine RESTful API abzusichern?


Zuletzt bearbeitet von choise am Mi 11.08.2010 15:54, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Benutzer definierte Eingaben im Shop
[php MySQL] Benutzer Login Script gesucht
[Suche] Upload Script mit Benutzer Acount
Illustrator Dokument auf Server, Zugriff mehrerer Benutzer
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.