2014-05-20 15 views
15

Ich arbeite daran, ein Programm mit dem Google Tasks API in Python zu schreiben. Ich habe die Beispielanwendung von Google heruntergeladen und ausgeführt. Sie enthält eine Datei namens "client_secrets.json". Ich verstehe, dass die Datei für 0Auth-Authentifizierung verwendet wird, aber meine Frage ist, sollte ich diese Datei an Benutzer verteilen? Sollte ich es zu meinem öffentlichen Quell-Repo schieben? Oder soll es geheim gehalten werden? Wenn ich es nicht teilen sollte, wie würden andere Benutzer die Authentifizierung durchführen?Wie wird die Datei client_secrets.json verwendet?

Danke fürs Lesen.

+0

Während die Antwort von @ user3490818 gültig ist, frage ich mich, ob das immer wahr ist. Was passiert, wenn APIs auf dieser "client_secrets.json" aktiviert sind und keinen Zugriff auf Ressourcen haben, auf denen das Kontingent konsumiert wird? Was ist, wenn Sie eine Anwendung schreiben, die nur auf das Google Drive des Nutzers zugreift - sollte der Nutzer die Entwickler-API nur für diesen Zweck aktivieren? Ich denke nicht, dass es vernünftig ist. Was ist, wenn Sie ein Konto ausschließlich zum Zweck der Erstellung von redistributable "client_secrets.json" registrieren? Wenn Sie etwas herausfinden, können Sie bitte Update hier posten – galets

+0

irgendwelche Ideen, wo ich 'client_secrets.json' herunterladen sollte? – Daniel

Antwort

9

Die Google API Client Library OAuth2 docs Staaten,

Halten Sie Ihr Client geheimen privaten. Wenn jemand Ihren Kunden als geheim erhält, kann er Ihr Kontingent konsumieren, Gebühren für Ihr Developers Console-Projekt in Höhe von erheben und Zugriff auf Benutzerdaten anfordern.

Also nicht festschreiben oder anderweitig die Datei verteilen. Wenn Sie den Quellcode Ihrer Anwendung öffentlich teilen möchten, weisen Sie andere an, ihr eigenes Google Developer-Konto zu verwenden, um ihr eigenes Google Developer-Projekt zu registrieren und ihre eigenen App-OAuth-Anmeldeinformationen (client_secrets.json-Datei) für ihre Installation zu generieren "von der App.

Wenn Sie die Anwendung kommerziell verfügbar machen, müssen Sie die Anmeldeinformationen der App scheinbar vertrauenswürdig, rechtlich geschützt oder sicher teilen.

6

Offenbar muss die Datei client_secrets.json nicht für die installierte Anwendung geheim gehalten werden. Von https://developers.google.com/identity/protocols/OAuth2?csw=1#CS in dem „Installierte Anwendungen“ Abschnitt:

Das Verfahren führt zu einer Client-ID und in einigen Fällen, ein Client-Geheimnis, das Sie in der Quellcode Ihrer Anwendung einbetten. (In diesem Kontext wird das Clientgeheimnis offensichtlich nicht als Geheimnis behandelt.)

Wenn Sie also eine Webanwendung erstellen, halten Sie sie geheim. Wenn es sich um eine Python-App handelt, die Sie an Benutzer verteilen und die sie selbst ausführen, muss sie nicht geheim gehalten werden.

+0

Ich denke, eine git-hub gehostete Open-Source-Python-App müsste ihre 'client_secrets.json'-Datei irgendwie versteckt halten? – tetris11

Verwandte Themen