Frage

Ich suche eine API auf den Aufbau und erwäge oauth für den Zugang zum api Verwaltung, aber was ich tun ist eher ein b2b-System ermöglicht Unternehmen den Zugriff auf Daten in ihre Websites zu integrieren. Ich werde keine b2c am Anfang haben.

So oauth wie das richtige Werkzeug scheint nicht für mich, ich habe nach Quellen suchen in Bezug auf den Aufbau eines Schlüssel-basiertes System, sondern über etwas nicht kommen.

Ist etwas zur Verfügung da draußen schon? Ist es am besten, nur einen Hash einiger Benutzer übermittelten Daten oder ähnliches erstellen?

War es hilfreich?

Lösung

Was Sie brauchen, ist nur etwas, das den Benutzer eindeutig identifiziert ... Nur eine UUID verwenden oder vielleicht ein Hash eines UUID.

Sie einfach sicher, dass diese ID über einen sicheren Kanal geleitet wird, wenn Sie es über einen unsicheren Kanal sind vorbei Sie ähnliche einige Verfahren zur Befestigung der ID implementieren müssen möglicherweise Auth zu HTTP verdauen.

Andere Tipps

Werfen Sie einen Blick auf fast jedem Web 2.0-Site / Service. Sie alle haben unterschiedliche Grade von Auth tun und API-Schlüssel zu verwalten. Flickr, Twitter, Github, etc.

Je nach Bedarf, in der Welt des Web api, indem Sie Ihre Partner / Entwickler einen API-Schlüssel (Identifikation) und erfordern sie die Anrufe unterschreiben (Authentifizierung) ist ziemlich Standard. Es gibt viele Möglichkeiten, Signaturen spec. Ein ziemlich häufig ein in diesen Tagen ist; nehmen alle params des Anrufes, einen Zeitstempel (+/- 5 min Wiggle), einen gemeinsamen geheimen Schlüssel, und es unter Verwendung von Hash-SHA-1 oder MD5 (SHA-1 besser).

Sie können entweder tun implementieren diese selbst oder einen Partner finden (es gibt ein paar) es für Sie zu tun.

Der allgemeine Ansatz wird hier vorgeschlagen (einen Hash zu verwenden, die einen API-Schlüssel und die aktuelle Uhrzeit enthält) sind alle gut -. Auf jeden Fall besser als ein „Passwort“ in der Meldung mit

Allerdings gibt es einen Krypto-Standard Weg, um diesen „Mung“ Betrieb tut genannt HMAC. Nun lohnt ein Blick auf, wenn Sie etwas mehr Standard / robust / safe wollen.

Schließlich gibt es offensichtlich den „Goldstandard“ von Sicherheitsoptionen - ein digitales Zertifikat verwenden entweder alle Anfragen zu signieren (rechnerisch teuer sein) oder verwenden Sie eine anfängliche Anforderung zu unterzeichnen, die dann einen limitted Verwendung Sitzungsschlüssel erzeugt (zB einer API nur mit einem Ablauf nach 60 Minuten).

Alternativ können Sie 2-Wege-SSL für die Transportschicht verwenden und einfach darauf vertrauen, dass in der Anwendung / API.

Wirklich hängt, wie sicher Sie es wünschen ...:]

Ich würde nicht nur verwenden, um Benutzerdaten vorgelegt, so dass eine Situation schaffen kann, wo API-Schlüssel zu erraten ist. Im Allgemeinen nehme ich einige Daten, die vom Benutzer erzeugt wird, und dann mit einigen Daten kombinieren, die relativ eindeutig ist (dh aktuelle Systemzeit) und Hash dass die Verwendung von SHA-1 oder etwas, vielleicht die Darstellung ändern, wenn ich nicht tun will es offensichtlich ein SHA-1-Hash, und dann verwenden, die als Schlüssel.

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