2016-09-29 5 views
0

Ich habe in der Vergangenheit eine Hand gerollt App, die ein Benutzer-Token auf Client-Seite $ window.sessionStorage speichert getan.User Auth - oAuth Fragen

Ich habe seitdem festgestellt, dass dies nicht sicher ist. Ich bin jetzt auf der Suche nach der sichersten, Standardmethode, um eine App zu sichern, die eine Node/Express-Backend-API verwendet, die ich machen werde, und verwendet auch ein Frontend, das Anfragen an diese API wie angular für das Web oder eine native mobile App stellt . Außerdem, wenn ich den Browser schließen würde, müsste ich mich neu anmelden, weil der Sitzungsspeicher des $ windows gelöscht wurde.

Nach was ich bis jetzt recherchiert habe, ist eine der sichersten Möglichkeiten zu datieren, wenn du handrollst, ist es, einen JWT in einem sicheren HTTP-Cookie zu speichern.

Allerdings würde ich gerne einen Dienst verwenden, der bereits existiert, wie oAuth. Paar Fragen:


1) Wie sicher ist oAuth in Bezug auf die Aufrechterhaltung Ownershp Ihrer Benutzerbasis? Was wäre, wenn oAuth in 3 Jahren plötzlich oder langsam ausstirbt? Sind nicht alle meine Benutzer technisch auf ihrem Server gespeichert? Wie würde ich meine Nutzer in meiner App nativ halten?

2) Wenn ich eine Startup-App im selben Bereich wie Snapchat, Twitter, Tumblr usw. erstelle, wäre es generell empfehlenswert, einen Dienst wie oAuth zu verwenden, um meine Authentifizierung zu handhaben? Natürlich ist die Zukunft nicht bekannt, aber unter der Annahme, dass meine App Millionen von Nutzern erreichen würde, wäre die Nutzung eines Dienstes wie oAuth immer noch eine kluge Wahl? Es sieht so aus, als ob Sie, sobald Sie mit oAuth arbeiten, nie wieder ein paar Jahre später Ihre Benutzer in Ihrer eigenen Datenbank speichern.

Dank

+0

Empfehlungen sind * ausdrücklich * off-topic auf SO. – jonrsharpe

+0

Empfehlungen über was? –

+0

Alles, Authentifizierungsprotokolle und Dienste enthalten. – jonrsharpe

Antwort

0

OAuth ist ein offener Standard für die Autorisierung.

Vielleicht denken Sie an Auth0. Es gibt eine Menge von Diensten, die Benutzerautorisierung für Sie behandeln können, einschließlich Auth0, Stormpath, Apigee, UserApp, AuthRocket oder Amazon Cognito. Egal, was Sie wählen, stellen Sie sicher, dass Sie die Datenbank von ihnen erhalten können, falls Sie ihren Service nicht mehr nutzen wollen. Nicht jeder bietet explizit eine einfache Möglichkeit, sie zu verlassen, aber wenn das für Sie wichtig ist, dann stellen Sie sicher, wer Ihren Bedürfnissen entspricht und wer nicht, und begründen Sie Ihre Entscheidung darauf.

Wie für OAuth, siehe https://en.wikipedia.org/wiki/OAuth Artikel. Es gibt eine riesige list of OAuth providers auf Wikipedia, aber das sind Dienste wie Twitter, Google oder Facebook. In gewisser Weise können Sie einen dieser Dienste verwenden, um alle Ihre Logins zu verwalten, aber sobald sie Sie als ihre Konkurrenz sehen, haben Sie Probleme. Ich habe solche Geschichten gehört.

Einige interessante Lektüre zum Thema:

+0

RSP ... Danke für die Antwort.Behandelt OAuth JWT für Sie? Ich möchte im Grunde nur mein Benutzermodell so einrichten, dass jwt bei der Anmeldung mit den richtigen Zugangsdaten auf gehen geht und selbst wenn ein Nutzer den Browser näher bringt, sind sie noch autorisiert, bis sie sich explizit abmelden. Vielen Dank. –

+0

@Tyler OAuth behandelt keine JWT. JWT ist ein JSON-Web-Token, beschrieben in RFC 7519, das die Arbeit der OAuth-Arbeitsgruppe ist. Einige Authentifizierungsanbieter unterstützen explizit JWT, wie z.B. Auth0 - siehe https://auth0.com/docs/jwt - Einige Anbieter unterstützen es nicht selbst und Sie müssen Ihre eigene Lösung rollen, wie z. mit Apigee, obwohl es OAuth verwendet - siehe https://community.apigee.com/questions/9860/support-for-jwt-token.html - Sie müssen sich umsehen, welche der Dienste, über die ich schrieb (und ich bin sicher es gibt mehr) unterstütze JWT out of the box und welche nicht. – rsp

+0

Recherchiert alle Dienste, über die Sie geschrieben haben, danke. Wie wäre es mit PassportJS? Ich habe das nicht erwähnt, aber ich fange an, in diesem speziellen Fall von oAuth abzulenken, wegen der Artikel, die ich überflogen habe, die du zur Verfügung gestellt hast. –

Verwandte Themen