soef / ioBroker.find-my-iphone

ioBroker Adapter to locate Apple devices
MIT License
6 stars 2 forks source link

2 Faktor Authentifizierung funktioniert regelmäßig nicht #9

Open bierhurra opened 7 years ago

bierhurra commented 7 years ago

Hallo,

ich habe derzeit zum probieren 3 Instanzen angelegt. Eine für ein iPhone welche nicht über 2 Faktor Auth läuft. dort gibt es keine Probleme. In Instanze 2 und 3 ist je ein iPhone mit 2 Faktor Athentifizierung angemeldet. Jetzt im letzten Versuch lief es 4 Tage. Danach werden die Daten nicht mehr aktualisiert. Ich setzte, wenn ich es brauche die Variable Refresh im device in global auf true. Dies Funktioniert wie gesagt bei der 1. Instanze derzeit gut. Liegt das an Apple, dass der 2 Code nicht ewig Gültigkeit besitzt? Grüße Roland

bierhurra commented 7 years ago

Ich habe gerade den 2. Faktor neu eingegeben und es funktionniert trotzdem nicht. Lediglich die Akku Anzeige wird aktualisiert. Es ist mein Nutzeraccount von meinem iPhone. die Ortung sollte funktionieren. Über iCloud oder meinem iPad funktioniert es. Gibt es möglichkeit nach einem detaillierterem log? Im Log des iobroker steht nichts.

soef commented 7 years ago

Hallo, um genaue Logausgaben zu bekommen, kannst Du den Adapter in der Instanzen-Ansicht stoppen und von der Console im iobroker.find-my-iphone Verzeichnis node find-my-iphone 1 --force eingeben. Die 1 ist dabei die Instanz. Dabei gibt es dann log-Ausgaben in der Console.

Zum Refresh: Durch setzen des States 'refresh' wird einmalig ein Refresh durchgeführt. Das sollte also nur bei Bedarf gemacht werden. Für eine ständige Live-Ansicht müsste ein Timer des refresh-State periodisch setzen. Wird der Refresh beim Device gesetzt, werden Location neu ermittelt. Das sieht man daran, das der Status isLocating true ist. So lange der Wert true ist, wartet der Adapter aus eine Anwort von Apple, bzw. dem Gerät.

bierhurra commented 7 years ago

Ich habe den key neu eingegeben. Das Abrufen der Daten funktioniert. Nach einer Stunde nicht mehr. Ich habe den Adapter gestopt und von hand gestartet.

Ich erhalte folgende Antwort:

ICloud.prototype.request: path=login ICloud.prototype.request: statusCode=421 Misdirected Request ICloud.prototype.request: path=logout ICloud.prototype.onError: error=Misdirected Request (421) ICloud.prototype.request: path=login ICloud.prototype.request: statusCode=421 Misdirected Request ICloud.prototype.onError: error=Misdirected Request (421)

Das klingt mir so, als würde der key nicht akzeptiert werden.

cernst1980 commented 6 years ago

Gibt es schon was Neues hierzu? Ich habe das gleiche Problem:

pi@raspberrypi:/opt/iobroker/node_modules/iobroker.find-my-iphone $ sudo node find-my-iphone 0 --force ICloud.prototype.request: path=login ICloud.prototype.request: statusCode=421 Misdirected Request ICloud.prototype.request: path=logout ICloud.prototype.onError: error=Misdirected Request (421) ICloud.prototype.request: statusCode=421 Misdirected Request ICloud.prototype.onError: error=Misdirected Request (421)

Beim ersten Mal Starten nach der Eingabe des Keys klappt es, dann nicht mehr...

Somberland commented 6 years ago

Wäre hier die Verwendung von App-Spezifischen Passwörtern nicht sinnvoller? 1) Sicherer da man nicht sein iCloud-Kennwort "rausgibt" und 2) würde das den ganzen 2-faktor-kram (der echt Sinnvoll ist, aber hier extrem störend) umgehen.

bildschirmfoto 2018-01-05 um 10 20 54 bildschirmfoto 2018-01-05 um 10 27 59

https://support.apple.com/de-de/HT204397

cernst1980 commented 6 years ago

Das habe ich mir auch schon gedacht und ganz naiv einfach ausprobiert. Aber ohne Änderungen am Code klappt das leider nicht. Keine Ahnung, ob die Umstellung sehr komplex ist, wäre aber wahrscheinlich die beste Lösung in diesem Fall.

mikiline commented 6 years ago

Hallo soef, das mit dem "refresh" geht bei mir meistens auch nicht. Aber sobald der Adapter neu gestartet (restart) wird, wird die neue Position übertragen und aktualisiert. Als ob der Adapter einen Anstoss benötigt, oder auch Apple um den Standort zu pushen.

Bitte mal prüfen, (ich als Laie) es scheint als ob irgendwo entweder ein Trigger oder eine Zeile Code nicht in einer function sitzt..........wieso sonst sollte nach restart alles gehen?

Alanin commented 6 years ago

Ich hab mal in den Developer Documents von Apple geschaut ob es dort Dokumente zu den App-Spezifischen Passwörtern gibt. Ich habe nichts gefunden, wie sich die Api geändert hat.

Ich hab dann mal in der Instanz in ioBroker das generierte Passwort hinterlegt und aktuell zieht er sich die Daten. Scheinbar funktioniert das auch. Ich werde das mal weiter beobachten, wie lange das stabil läuft.

Alanin commented 6 years ago

Ok, hat auch nichts gebracht... Er bekommt irgendwann den StatusCode 450. Danach geht nix mehr... Die 450 ist wohl irgendein Statuscode vom Windows Parental Control. Allerdings habe ich im Netzwerk kein Windows. Zudem kommt der Statuscode ja eigentlich vom Server - also von den iCloud Servern...

image

Alanin commented 6 years ago

I have setup a Script that is updating the Status of a device every 5 minutes but this is not helping much. So its nothing with some kind of timeout of a token...

and the app specific password is not working I cannot login using it... but also can't find some kind of documentation so I would be able to change the source code

Alanin commented 6 years ago

Ok, ich hab das ganze jetzt so eingestellt, dass aller zwei Minuten eine Abfrage für ein MacBook gemacht wird. Bisher läuft das ganze sehr stabil. Allerdings nur mit dem konkreten iCloud Passwort und nicht das App-spezifische...

cernst1980 commented 6 years ago

Welches Passwort verwendest Du aktuell? Ist für Deinen Account "Zwei-Faktor-Authentifizierung" oder die "zweistufige Bestätigung" aktiv oder weder noch? Funktioniert der Adapter nun dauerhaft und auch nach einem Neustart? Was genau macht Dein Skript?

sabixx commented 6 years ago

gleiches Problem hier. Mit 2FA gibt es wohl ein Timout des logins. Wenn der PIN dern 2FA aktualisiert wird läuft es wieder aber nach einiger Zeit (keine genaue angabe möglich? 1-2 Tage?) ist der token abgelaufen und dann müsste wieder ein neuer PIN für die 2FA eingegeben werden.

Neustart des Adapters hilft nicht, nur ein neuer one time token der schaft abhilfe.

maumi commented 6 years ago

gibt es hier schon was neues? 2FA kann man ja nicht mehr wirklich deaktivieren (danke Apple) aber immer wieder neu Authorisieren ist auch blöd :-/

t6a commented 5 years ago

Ja, eine anwendungsspezifisches Passwort wäre am besten! Dort sollte es auch keine Time Outs geben. Hoffe nur, dass für andere Anwendungen die Location auch freigegeben ist

Sandomor commented 5 years ago

Hi - ich wollte nur fragen, ob es geplant ist, hier eine Umsetzung zu schaffen - oder ob ich mich anderweitig umsehen soll....

ChrisPrefect commented 5 years ago

Aktuell funktioniert der Adapter gar nicht, ist das richtig? Oder liegt das Problem bei mir?

Sandomor commented 5 years ago

Die Authentifizierung klappt nur solange der Token (6stellige Nummer) nicht abläuft ...

Solange der aktuell ist funktioniert es

ChrisPrefect commented 5 years ago

OK ich habe 2FA aktiviert aber ich sehe keine aktualisierten Daten und es werden auch keine Trigger ausgelöst z.B. bei geändertem Akku-Stand. Es sieht so aus, als ob die Daten einmal oder nur für kurze Zeit abgerufen werden und danach nicht mehr. Ich hatte mich schon mehrfach neu eingeloggt.

Sandomor commented 5 years ago

Genau das ist das Problem - du trägst den code der 2FA ein- dann funktioniert es ein wenig - und dann gibt es keine Aktualisierungen mehr - weil der Code abläuft ...

Alanin commented 5 years ago

Aber das muss doch hinzubekommen sein. Immerhin funktionieren andere Sachen ja auch, ohne dass man sich aller paar Stunden neu anmelden muss.

Meiner Meinung nach, sollte die api von Apple doch die Aktualisierung mittels des Codes ermöglichen. Oder es liegt ein anderes Problem vor. Ich hab den 2FA Code von Apple auch bei anderen Diensten in Verwendung und da musste ich das nur ein einziges Mal machen. Seit dem läuft das...

Sandomor commented 5 years ago

Ich denke auch dass das eigentlich möglich sein muss - dafür hat Apple ja die App Passwörter eingeführt - leider kostet der Account als developer mit dem man vermutlich die Dokumentation und die API bekommt für mich zu viel ... und auch die Zeit für die Entwicklung fehlt mir ..:

Alanin commented 5 years ago

Ich schaue mal nach, ob ich was finde, ich hab über die Firma einen Developer Account.

ChrisPrefect commented 5 years ago

leider kostet der Account als developer mit dem man vermutlich die Dokumentation und die API bekommt für mich zu viel ... und auch die Zeit für die Entwicklung fehlt mir ..:

Du kannst gerne meinen Developer-Account haben, den brauche ich aktuell für nichts. Mit der Zeit kann ich leider nicht aushelfen, höchstens mit dem Testing.

Sandomor commented 5 years ago

Nehme gerne mal deinen Account um mir die api anzusehen - Vll keine ich ja was raus

ChrisPrefect commented 5 years ago

Nehme gerne mal deinen Account um mir die api anzusehen - Vll keine ich ja was raus

Schreibst du mich kurz an? info@dronefactory.ch

jogibear9988 commented 5 years ago

This issue was moved to iobroker-community-adapters/ioBroker.find-my-iphone-community#2

reloxx13 commented 5 years ago

ich hab keine 2FA und habe das gleiche problem, keine aktualisierung. setze ich refresh auf true bekomme ich den aktuellen akku stand nach ien paar minuten