Was ist ein GitHub App Bearer Token und wie wird es verwendet?
- Einführung in GitHub Apps und Authentifizierung
- Definition eines Bearer Tokens
- Der Bearer Token im Kontext einer GitHub App
- Anwendungsprozess eines GitHub App Bearer Tokens
- Sicherheitsaspekte und Gültigkeitsdauer
- Fazit
Einführung in GitHub Apps und Authentifizierung
GitHub Apps sind spezielle Integrationen, die es ermöglichen, automatisierte Aktionen auf GitHub-Repositories oder Organisationen durchzuführen. Im Gegensatz zu OAuth Apps besitzen GitHub Apps fein granularere Berechtigungen und können spezifische Ressourcen und Aktionen autorisieren. Um sicher mit der GitHub API kommunizieren zu können, benötigen diese Apps eine Form der Authentifizierung, wofür unter anderem der sogenannte Bearer Token zum Einsatz kommt.
Definition eines Bearer Tokens
Ein Bearer Token ist ein Sicherheitstoken, das als Teil der HTTP-Authentifizierung verwendet wird. Beim Zugriff auf eine API wird das Token in einem HTTP-Header übergeben. Der Server überprüft dabei, ob das übermittelte Token gültig ist, und gewährt daraufhin Zugriffsrechte. Der Begriff Bearer bedeutet dabei, dass jeder, der dieses Token besitzt, Zugriff auf die damit autorisierten Ressourcen hat – daher ist ein sicherer Umgang mit dem Token besonders wichtig.
Der Bearer Token im Kontext einer GitHub App
Github Apps verwenden Bearer Tokens, um authentifiziert API-Anfragen zu senden. Dabei unterscheidet man zwischen sogenannten JSON Web Tokens (JWT), die GitHub Apps zunächst erzeugen, und den Access Tokens (Bearer Tokens), welche letztendlich zur Kommunikation mit GitHub verwendet werden. Zunächst erstellt die GitHub App ein JWT mit ihrem privaten Schlüssel, dieses JWT wird an GitHub gesendet, um ein temporäres Access Token anzufordern. Dieses Access Token ist der tatsächliche Bearer Token, der für die Dauer seiner Gültigkeit API-Anfragen mit entsprechenden Zugriffsrechten ermöglicht.
Anwendungsprozess eines GitHub App Bearer Tokens
Der Workflow beginnt mit dem Erzeugen eines signierten JWTs in der GitHub App. Dieses JWT dient dazu, sich erstmalig gegenüber GitHub zu authentifizieren. Anschließend wird dieses JWT an den GitHub Endpunkt gesendet, der für das Erstellen eines Access Tokens zuständig ist. GitHub validiert das JWT, prüft die Berechtigungen und stellt für eine begrenzte Zeitspanne einen Bearer Token (Access Token) bereit. Mit diesem Bearer Token kann nun die App Zugriff auf die zugewiesenen Ressourcen bekommen und API-Anfragen autorisiert durchführen.
Sicherheitsaspekte und Gültigkeitsdauer
Da Bearer Tokens vollen Zugriff auf die definierten Ressourcen gewähren, sollte stets darauf geachtet werden, dass diese Token sicher verwahrt werden. Ein Missbrauch oder Verlust kann unbefugten Zugriff ermöglichen. Aus diesem Grund sind die Access Tokens, welche als Bearer Tokens fungieren, zeitlich limitiert, meistens auf eine Stunde. Nach Ablauf müssen erneut ein JWT generiert und ein neuer Access Token angefordert werden, was das Risiko einer langfristigen Kompromittierung verringert.
Fazit
Das GitHub App Bearer Token ist ein wesentlicher Bestandteil der Authentifizierung von GitHub Apps. Es wird genutzt, um sicher und kontrolliert API-Anfragen zu ermöglichen, nachdem eine App sich durch ein JSON Web Token authentifiziert hat. Der Bearer Token trägt dazu bei, dass eine App mit klar definierten Berechtigungen auf GitHub-Ressourcen zugreifen kann, während gleichzeitig die Sicherheit dadurch verbessert wird, dass Tokens nur temporär gültig sind. Ein Verständnis dieses Prozesses ist entscheidend für Entwickler, die mit GitHub Apps arbeiten und deren API nutzen möchten.
