0

Ich habe eine plattformübergreifende Anwendung für Web und Mobile entwickelt.REST API Sicherheit mit plattformübergreifenden Apps (AWS Cloud/Services)

Der Webpart wird von einer node.js/express-Anwendung bedient und hat eine Benutzerauthentifizierung basierend auf pass.js, mit lokaler Anmeldung, Facebook und Google-Authentifizierung. Es wird teilweise serverseitig mit Jade gerendert, aber auch mit Angular für dynamische Inhalte, die von der API angefordert werden.

Der mobile Client wurde mit Ionic2/(Angular2) entwickelt und authentifiziert Benutzer durch Aufruf des node.js Servers mit einer Pass-JWT-Strategie.

Beide Clients, Web und Mobile werden mit einer REST-API mit AWS API und mehrere Lambda Gateaway Microservices hinter einrichten, mit DynamoDB, Elaticsearch usw.

Eigentlich mit der API Sicherheit bin ich kämpfen. Die Endpunkte, für die eine Benutzerauthentifizierung/-mitgliedschaft erforderlich ist, können mit dem JWT-Token unter Verwendung der vorhandenen Auth-Strategien verarbeitet werden. Aber ungefähr 90% der APIs liefern Daten, für die keine Authentifizierung erforderlich ist.

Die sind jetzt offen für die Welt, da ich keine gute Strategie gefunden habe, sie zu schützen. Mein Ziel ist es sicherzustellen, dass nur Benutzer der mobilen und Web-App auf diese Endpunkte zugreifen können.

Wie könnte ich das archivieren? Es wäre großartig, wenn mir jemand einen Hinweis auf den besten Ansatz geben könnte.

Vielen Dank!

+0

Sie können einen benutzerdefinierten Autorizer im API-Gateway verwenden, um das jwt-Token zu überprüfen. Irgendein Grund, es nicht zu benutzen? – Ashan

+0

Ja das ist, was ich eigentlich mit Endpunkten mache, die Auth erfordern, weil nur authentifizierte Benutzer ein Token haben. Problem ist bei der API, dass allgemeine Daten für jeden Benutzer, der nicht authentifiziert ist, dienen. – Stefan

Antwort

0

Obwohl Sie sagen, dass Authentifizierung für diese Dienste nicht erforderlich ist, sieht es so aus, als ob Sie tatsächlich eine Authentifizierung benötigen. Da Sie nach einem Identitätsnachweis für einen Anforderer fragen, auch wenn diese Identität eine Voraussetzung ist, wie es in "Nur Benutzer der mobilen und Web-App können zugreifen", Sie sprechen über die Authentifizierung. Sie möchten JWT einfach auch für diese Endpunkte verwenden.

Sie können auch Ihre Benutzer autorisieren, um zu entscheiden, was eine bestimmte Identität tun darf. Auf diese Weise können Sie alle authentifizierten Benutzer auf alle Ihre Endpunkte zugreifen lassen, aber nur die mit einem Mitgliedschaftsnachweis (in der JWT) können auf die geschützten Endpunkte zugreifen.