Wie verwende ich das anwendungsspezifische Google-Passwort im Skript?

9

Seit Aktivierung der 2-Faktor-Authentifizierung (auch als Bestätigung in zwei Schritten) bei Google funktionieren meine Google-Exportskripte nicht mehr. Der Computer ist verifiziert und vertraut, aber irgendwie sind die Skripte nicht. Jedes Mal, wenn der Cron-Job ausgeführt wird, erhalte ich einen neuen "Google-Bestätigungscode", und das Skript schlägt fehl. Ich nehme an, es sollte eine einfache Angelegenheit sein, solche Skripte ein für allemal mit wget oder curl zu authentifizieren, aber ich konnte keine Dokumentation dafür finden.

Google-Authentifizierungsschemata haben viele Iterationen durchlaufen, und ich kann mich nicht länger mit curl oder mechanicalsoup anmelden. Ich habe versucht, URLs wie https://accounts.google.com/ServiceLogin?continue=https://calendar.google.com/calendar/exporticalzip&[email protected]&Passwd=application-specific-password zu verwenden und werde immer auf eine Login-Seite umgeleitet, normalerweise mit der Meldung "Bitte benutze dein Account-Passwort anstelle eines anwendungsspezifischen Passworts."

    
l0b0 21.04.2012, 11:29
quelle

3 Antworten

4

Sind Sie absolut sicher, dass Sie die 2-Faktor-Authentifizierung mit den Shell-Skripten verwenden möchten? Wenn dies der Fall ist, müssen Sie nicht versuchen, Ihren Computer oder Ihr Skript als "vertrauenswürdig" einzustufen. Sie tun nur die volle 2-Faktor-Authentifizierung jedes Mal, wenn Sie das Skript ausführen.

Wenn das Ziel darin besteht, die manuelle zweite Faktor-Authentifizierung zu überspringen, würde ich stattdessen vorschlagen, ein anwendungsspezifisches Passwort zu verwenden (wie bereits von anderen Antworten vorgeschlagen). Geben Sie einfach vor, dass Sie keine 2-Faktor-Authentifizierung verwenden und verwenden Sie Ihren echten Anmeldenamen, aber setzen Sie das Passwort auf eins, das unter Ссылка (Unterseite von Ссылка ).

Die Absicht ist, das anwendungsspezifische Passwort "Name" auf einen Wert zu setzen, der für Sie von Bedeutung ist. Zum Beispiel habe ich Passwörter mit der Aufschrift "Pidgin bei der Arbeit", "Mein Android Phone", "Thunderbird Google Adressbuch-Erweiterung bei der Arbeit" usw. Sie könnten eine für "Kalender und Reader Export Script" haben. Wenn Sie jemals glauben, dass dieses anwendungsspezifische Passwort kompromittiert ist ("leaked"), klicken Sie einfach auf den Link "Widerrufen" auf der gleichen Seite und generieren Sie dann ein neues Passwort für Ihr Skript.

Verwenden Sie für den Code einfach die letzte Version, die mit Google Single Factor Auth. Update: Da die ursprüngliche Frage die URL https://accounts.google.com/ServiceLogin für die Initiierung des Sitzungs-Logins verwendet hat, wird die Anmeldung des Browsers praktisch vorgetäuscht. Google unterstützt dies jedoch offiziell nicht und während ich dies schreibe, scheint es, dass die Verwendung des anwendungsspezifischen Passworts für den normalen Login mit der Fehlermeldung "Bitte benutze dein Account-Passwort anstelle eines anwendungsspezifischen Passworts" enden sollte.

>

Eine Sache, die Sie über die Google 2-Faktor-Authentifizierung und den "vertrauenswürdigen Computer" wissen sollten, ist, dass die eigentliche Implementierung lediglich einen permanenten Cookie mit 30 Tagen Ablaufzeit zu Ihrem Browser hinzufügt. Vertrauenswürdiger Computer bedeutet nicht, dass Ihre IP-Adresse vertrauenswürdig war oder eine andere magische Verbindung erstellt wurde. Sofern Ihre Skripts den Cookie "vertrauenswürdiger Computer" nicht in Ihrem bevorzugten Browser erfassen, spielt es keine Rolle, ob Sie Ihren Computer jemals als vertrauenswürdig gekennzeichnet haben. (Das Google-Formular sollte nicht "Diesen Computer für 30 Tage erinnern" angeben, sondern "Diese Kombination aus Browser und Benutzerkonto 30 Tage lang verwenden (permanentes Cookie speichern)". Allerdings wurde das als zu technisch angesehen.)

>

Update: (kopiert von meinem Kommentar unten) Die einzige offiziell unterstützte Methode (Server-zu-Server-Anwendungen) ist dokumentiert unter Ссылка . Es erfordert die Codierung der Anforderung durch OAuth / JWT und die Verwendung des privaten Dienstkontoschlüssels, der unter Ссылка erstellt wurde. Als Alternative könnten Sie die ClientLogin-Authentifizierung verwenden (bereits veraltet, Best-Effort-Service bis 2015).

Wenn Sie sich für OAuth entscheiden, sollten Sie sich Ссылка und Ссылка

    
Mikko Rantalainen 09.07.2012 05:57
quelle
0

Das Erstellen von anwendungsspezifischen Passwörtern funktioniert für meine Skripte. Sie müssen lediglich das Passwort erstellen und dann in Ihrem Skript, in dem Sie Ihr Google-Konto-Passwort haben, stattdessen das anwendungsspezifische Passwort eingeben.

Weitere Informationen zu anwendungsspezifischen Passwörtern finden Sie hier:

Anwendungsspezifische Passwörter

Hoffe das hilft !!

    
scrineym 27.04.2012 11:04
quelle