Sicherer Umgang mit Access Tokens

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Sicherer Umgang mit Access Tokens

Beitrag von buhtz » 12.06.2022 21:19:31

Ich beschäftige mich gerade mit PyGithub, eine Python Bibliothek, mit der man GitHubs REST 3 Api nutzen können soll.
Das Problem ist, dass hier viele Funktionen scheinbar nicht ohne "Login" machbar oder praktikabel (github.GithubException.RateLimitExceededException: 403 {"message": "API rate limit exceeded) sind.

Username und Login werden als String in eine Funktion übergeben. Mit Access Tokens wäre es das Selbe.
Aber ich werde diese natürlich nicht im Code hardkodieren. Also wie löst man sowas? Es wird ein einfaches Skript ohne GUI.

Mein Passwort ist ein von einem Passwortmanager überlanger Zeichensalat. Das kann ich unmöglich merken oder gar bei jedem Run eintippen. Ich kann das auch nicht per Copy & Paste aus dem Passwortmanager holen; aus Sicherheitsgründen.

Wie gehen die Erfahreneren mit so einer Situation um?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

tijuca
Beiträge: 297
Registriert: 22.06.2017 22:12:20

Re: Sicherer Umgang mit Access Tokens

Beitrag von tijuca » 12.06.2022 23:25:30

Code: Alles auswählen

$ FOO_TOKEN=m3inPass python3 -c "import os; print(os.getenv('FOO_TOKEN'))"
m3inPass

Benutzeravatar
TRex
Moderator
Beiträge: 8068
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Sicherer Umgang mit Access Tokens

Beitrag von TRex » 13.06.2022 00:26:28

Code: Alles auswählen

python doit.py TRex "$(pass show doit/TRex)"
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

buhtz
Beiträge: 1105
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Sicherer Umgang mit Access Tokens

Beitrag von buhtz » 13.06.2022 09:13:20

tijuca hat geschrieben: ↑ zum Beitrag ↑
12.06.2022 23:25:30

Code: Alles auswählen

$ FOO_TOKEN=m3inPass python3 -c "import os; print(os.getenv('FOO_TOKEN'))"
m3inPass
OK, das ist ein Workaround, der mich der Sache näher bringt. Hier wäre das Credential wenigstens während der laufenden Session persistent.
TRex hat geschrieben: ↑ zum Beitrag ↑
13.06.2022 00:26:28

Code: Alles auswählen

python doit.py TRex "$(pass show doit/TRex)"
Sozusagen ein Kommandozeilen Passwortmanager. Fett! Sehe ich zum ersten Mal.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Sicherer Umgang mit Access Tokens

Beitrag von JTH » 13.06.2022 12:49:56

buhtz hat geschrieben: ↑ zum Beitrag ↑
13.06.2022 09:13:20
OK, das ist ein Workaround, der mich der Sache näher bringt. Hier wäre das Credential wenigstens während der laufenden Session persistent.
Nur als Hinweis am Rande, das muss je nach Szenario kein Problem sein: Auf dem Wege sind die Werte für jeden Benutzer, jede Anwendung mit ausreichenden/ähnlichen Berechtigungen lesbar:

Code: Alles auswählen

$ THE_TOKEN=s3cret_5tuff sleep 10 &                                                                                                           
$ tr '\0' '\n' </proc/$!/environ | grep THE_TOKEN
THE_TOKEN=s3cret_5tuff
Vergleichbar auch bei der Übergabe als Kommandozeilenargument, da wäre es /proc/$!/cmdline.
Manchmal bekannt als Just (another) Terminal Hacker.

Antworten