Frage

Ich möchte eine Web-Service-Architektur schaffen, die von verschiedenen Plattformen wie mobile Geräte bezeichnet werden kann, winforms Anwendungen, iPhone, Blackberry, nennen Sie es. So geht mit so etwas wie WCF und wsHttp Bindung wahrscheinlich tötet dies, und ich würde auf eine basicHttp Bindung für die Kompatibilität degradieren müssen.

Mit diesem wird gesagt, ich brauche ein System ein Token auf Erstanmeldung (Authentifizierung) zu erzeugen, und dann diesen Token für alle nachfolgenden Anrufe verwenden, ich denke, um die Authentifizierung zu validieren und ermöglichen, dem Verfahren auszuführen.

Wer noch Tipps oder Vorschläge, wie um dies zu realisieren? 1) Erstellen Sie ein Token und was in einem sicheren Token beteiligt? 2) Wie lange ist das Zeichen gut für einige Benutzer ihre Anwendung stundenlang verwenden können und möglicherweise sogar „Schlaf“ ihr Computer

Vielen Dank für die Beratung.

War es hilfreich?

Lösung

Wenn Sie nur ein Token, die vom Server auf der ersten Authentifizierung gegeben ist, kann es für jede Anforderung verwendet werden, wenn es abgefangen wird. Ihre einzige Verteidigung ist die Ablaufzeit.

Darüber hinaus hängt es davon ab, was Ihre Implementierungsoptionen sind.

Ein sichereres System ist einen Zeitstempel (und möglicherweise eine Nonce) auf jede Anforderung hinzuzufügen, melden Sie das, und beinhaltet, dass bei jeder Anfrage. Es erfordert, dass der Client die Authentifizierungsdaten behandelt, kennt die Unterzeichnung Implementierung und Zeichen jede Anfrage.

Sie könnten abwechselnd den Server mit jeder Anforderung authentifizieren oder auszuteilen eine Anzahl von Token und erneuter Authentifizierung (die mit OpenID getan werden könnte), wenn mehr benötigt werden (die mit OAuth getan werden könnten). Wenn die Client-Anmeldeinformationen speichern kann, können diese für den Benutzer unsichtbar sein. Diese ist komplex und erfordern einen verschlüsselten Transport wie SSL für einige der Interaktionen und einen Client, die HTTP-Redirects sprechen kann und behandeln Cookies oder anderen gespeicherte Zustand. Der Kunde würde nicht wissen, wie zu unterschreiben, aber wenn Sie SSL tun können, haben Sie wahrscheinlich die Komplexität in erster Linie nicht brauchen.

Wenn Sie nicht brauchen, um zu sein Client-agnostisch, Sie wollen wahrscheinlich Anfragen zu unterschreiben.

Für Unterzeichnung Implementierungen, Beispiele und Bibliotheken, Blick auf Amazon Web Services, OpenID oder OAuth.

Im Hinblick auf die Token-Ablaufzeit kommt es auf Ihre Bedürfnisse. Ein längeren Token Leben erhöht die Fenster Replay-Attacken. Ein nonce macht ein Token zur einmaligen Verwendung, erfordert aber mehr Staat auf dem Server.

Andere Tipps

Sie sollten überprüfen OAuth . Es ist ein Standard für die API-Authentifizierung können Sie wahrscheinlich nur Plug eine vorhandene Implementierung in Ihre Dienste.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top