Benutzer eindeutig identifizieren ohne Registrierung

N

Nono

Neues Mitglied
1
Hallo zusammen,

fürs Studium müssen wir ein verteiltes System entwickeln. Dazu gehören bei uns eine Android App, ein Node.js Server und eine Java Desktop Anwendung. Grob gesagt soll die Desktop Anwendung über den Server mit der App interagieren. Wir haben es so vor, dass wenn die Desktop Anwendung etwas zu übermitteln hat, dieses an den Server übertragen wird und dort in einer Datenbank für den jeweiligen Adressat gespeichert wird. Die App kann dann die Nachricht aus der Datenbank laden. Jetzt sind wir gerade am überlegen, wie man den App Nutzer eindeutig identifizieren kann, sodass nur er seine Nachrichten aus der Datenbank bekommen kann.

Die erste Überlegung war, dass der App Nutzer einen Code generieren kann und dass dieser dann zusammen mit seiner persönlichen eindeutigen Android ID auf dem Server gespeichert wird. Er kann dann seinen Code an den Desktop Anwender übermitteln und dieser kann dann den App Nutzer zu seinem System hinzufügen und somit die Nachrichten immer genau an ihn adressieren. Die App sucht dann erst anhand der Android ID den generierten Code in der Datenbank und lädt dann die Nachrichten die an den Code adressiert sind. Allerdings ist soweit ich das richtig gelesen habe ja diese eindeutige Android ID nicht mehr aktuell bzw. man darf sie nicht mehr verwenden.

Die nächste Überlegung war, das ganze ohne die Android ID zu machen und den generierten Code zusätzlich noch lokal zu speichern, sodass die App dann direkt mit dem Code auf die Nachrichten zugreifen kann. Da ist aber wahrscheinlich das Problem, dass man die lokal gespeicherten Daten bestimmt leicht bearbeiten kann, sodass man da einen fremden Code eintragen könnte, um dessen Nachrichten zu bekommen.

Gibts hier Leute die damit Erfahrung haben und wissen wie man sowas umsetzt? Es muss jetzt auch nicht die sicherste Lösung sein. Wir würden uns über ein paar Tipps freuen.

Viele Grüße
 
Hallo Nono ,

willkommen im Forum

Da ist aber wahrscheinlich das Problem, dass man die lokal gespeicherten Daten bestimmt leicht bearbeiten kann, sodass man da einen fremden Code eintragen könnte, um dessen Nachrichten zu bekommen.
...
Es muss jetzt auch nicht die sicherste Lösung sein.

Ist das nicht ein kleiner Widerspruch ? :)

Zum Thema :

Bevor man in irgend eine Richtung eine Antwort geben kann :

Ist es richtig, dass ihr alles WebView basiernde auf dem App device machen wollt , also keine Socket oder direkte GET / POST Verbindung ???

Was ist für euch eine Android ID ???

Seid ihr Token / OAuth mächtig/fit ???
 
Ist das nicht ein kleiner Widerspruch ? :)

Ja bisschen sicherer als das was wir überlegt haben könnte es schon sein :laugh:

Ist es richtig, dass ihr alles WebView basiernde auf dem App device machen wollt , also keine Socket oder direkte GET / POST Verbindung ???

Wir haben da jetzt nicht ganz so viel Erfahrung wie man sowas generell am besten umsetzt. Haben uns das halt jetzt erstmal so mit dem Server überlegt. Also ein Socket ist auf jeden Fall nicht vorgesehen. Was meinst du denn mit direkte GET / POST Verbindung? Wir haben halt bis jetzt vor, dass die Clients jeweils mit GET und POST auf den Server zugreifen.

Was ist für euch eine Android ID ???

Das was hier (Is there a unique Android device ID?) zum Beispiel in der ersten Antwort genannt wird.

Seid ihr Token / OAuth mächtig/fit ???

Leider nein.
 
ok, das sind ja schon mal ein paar infos..

die einfachste Variante ist , das Ganze so aufzusetzen , dass ihr die Server Seite mit PHP realisiert.
Ich würde da vorschlagen, einen Login App -> Server mit einer Verschlüsselung durchzuführen - z.b- AES.

Das ist zwar NICHT 100 % sicher - Sicherer wäre ganz klar OAuth oder ein Token ( so wie es Facebook und Spotify machen)
das würde aber an der Stelle den Rahmen sprengen.
Das Verschlüsselungspasswort ist nachwievor auf dem Device (in den Prefs) gespeichert , es sei denn, man soll bei jedem Login erneut seine Daten eintippen. Dann ist es wieder ein stück sicherer.


zu Nodejs : das ist "veraltet" - heute kann man sich dem hier Bedienen ( läuft im übrigen auch auf iOS)
Firebase Cloud Messaging | Firebase
 
swa00 schrieb:
die einfachste Variante ist , das Ganze so aufzusetzen , dass ihr die Server Seite mit PHP realisiert.
Ich würde da vorschlagen, einen Login App -> Server mit einer Verschlüsselung durchzuführen - z.b- AES.

Das ist zwar NICHT 100 % sicher - Sicherer wäre ganz klar OAuth oder ein Token ( so wie es Facebook und Spotify machen)
das würde aber an der Stelle den Rahmen sprengen.
Das Verschlüsselungspasswort ist nachwievor auf dem Device (in den Prefs) gespeichert , es sei denn, man soll bei jedem Login erneut seine Daten eintippen. Dann ist es wieder ein stück sicherer.

zu Nodejs : das ist "veraltet" - heute kann man sich dem hier Bedienen ( läuft im übrigen auch auf iOS)
Firebase Cloud Messaging | Firebase

Also das Node.js ersetzt ja quasi in dem Fall das PHP, also es wartet auf eingehende GET oder POST Requests und führt dementsprechend Datenbanklogik aus. Und das haben wir halt schon in einem früheren Projekt benutzt, deswegen bietet sich das eigentlich ganz gut an. Firebase habe ich mir aber auch schon angeguckt und das werde ich mir auch nochmal genauer angucken. Danke aber auf jeden Fall schon mal für deine Tipps!
 
Nono schrieb:
Also das Node.js ersetzt ja quasi in dem Fall das PHP, also es wartet auf eingehende GET oder POST Requests und führt dementsprechend Datenbanklogik aus. Und das haben wir halt schon in einem früheren Projekt benutzt, deswegen bietet sich das eigentlich ganz gut an.

Das hört sich recht abenteuerlich an. Habt ihr es schon mal mit einer REST-Schnittstelle versucht. Ein bisschen mehr Energie solltet Ihr schon in eure Schnittstelle stecken. Zur Zeit hört es sich das mehr nach einer Einladung an, in eurer System einzubrechen.
An euer Stelle würde ich immer POST benutzen (GET lässt nicht beliebig lange Zeichenketten zu). Dann HTTPS. Zertifikate bekommt zur Zeit auch umsonst (Let's crypt - Let's Encrypt - Free SSL/TLS Certificates ). Und als Login-Mechanismus irgendwelche User und Passwörter. Es ist die mit Abstandstand einfachste und sicherste Lösung (KISS).
 
Hinweis der Moderation:

Die nachfolgende Diskussion zum REST-Api habe ich in ein extra Thema verschoben:

Diskussion zum REST-Api
 
  • Danke
Reaktionen: markus.tullius

Ähnliche Themen

Y
Antworten
4
Aufrufe
1.223
swa00
swa00
B
Antworten
3
Aufrufe
961
jogimuc
J
M
  • maksimilian
Antworten
6
Aufrufe
1.557
maksimilian
M
Zurück
Oben Unten