Skip to main content

Diese Version von GitHub Enterprise Server wird eingestellt am 2026-04-09. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für bessere Leistung, verbesserte Sicherheit und neue Features aktualisiere auf die neueste Version von GitHub Enterprise Server. Wende dich an den GitHub Enterprise-Support, um Hilfe zum Upgrade zu erhalten.

Unterschiede zwischen GitHub Apps und OAuth-Apps

Im Allgemeinen werden GitHub Apps OAuth apps vorgezogen, da sie differenzierte Berechtigungen verwenden, mehr Kontrolle darüber bieten, auf welche Repositorys die App zugreifen kann, und weil sie kurzlebige Token verwenden.

Informationen zu GitHub Apps und OAuth apps

Im Allgemeinen werden GitHub Apps häufiger als OAuth apps verwendet. GitHub Apps verwenden differenzierte Berechtigungen, bieten Benutzer*innen mehr Kontrolle darüber, auf welche Repositorys die App zugreifen kann, und verwenden kurzlebige Token. Diese Eigenschaften können die Sicherheit der App erhöhen, indem sie den Schaden begrenzen, der verursacht werden könnte, wenn die Anmeldeinformationen der App geleakt wurden.

Ähnlich wie OAuth apps können GitHub Apps weiterhin OAuth 2.0 nutzen und eine Art von OAuth-Token (ein sogenanntes Benutzerzugriffstoken) generieren und Aktionen im Namen eines Benutzers bzw. einer Benutzerin ausführen. Jedoch können GitHub Apps auch unabhängig von Benutzer*innen agieren. Dies ist von Vorteil für Automatisierungen, die keine Benutzereingabe erfordern. Die App funktioniert auch dann weiterhin, wenn die Person, die sie in der Organisation installiert hat, die Organisation verlässt.

GitHub Apps verfügen über integrierte, zentralisierte Webhooks. GitHub Apps können Webhookereignisse für alle Repositorys und Organisationen empfangen, auf die die App zugreifen kann. Umgekehrt müssen OAuth apps Webhooks einzeln für jedes Repository und jede Organisation konfigurieren.

Das Ratenlimit für GitHub Apps, die ein Installationszugriffstoken verwenden, wird mit der Anzahl der Repositorys und der Anzahl der Organisationsbenutzer skaliert. Umgekehrt weisen OAuth apps niedrigere Ratenlimits auf und sind nicht skalierbar.

Es gibt einen Fall, in dem einer OAuth app gegenüber einer GitHub App der Vorzug gegeben wird. Wenn deine App auf Ressourcen auf Unternehmensebene (etwa das Unternehmensobjekt selbst) zugreifen muss, solltest du eine OAuth app verwenden, da einer GitHub App noch keine Berechtigungen für ein Unternehmen erteilt werden können. GitHub Apps können weiterhin auf unternehmenseigene Organisations- und Repositoryressourcen zugreifen.

Weitere Informationen zu GitHub Apps findest du unter Informationen zum Erstellen von GitHub Apps.

Weitere Informationen zum Migrieren einer vorhandenen OAuth app zu einer GitHub App findest du unter Migrieren von OAuth-Apps zu GitHub Apps.

Wer kann GitHub-Apps installieren und OAuth apps autorisieren?

Sie können GitHub Apps in Ihrem persönlichen Konto oder in Organisationen installieren, die Sie besitzen. Wenn Sie über Administratorberechtigungen in einem Repository verfügen, können Sie GitHub Apps auf Organisationskonten installieren. Wenn eine GitHub App in einem Repository installiert ist und Organisationsberechtigungen erfordert, muss der Organisationsbesitzer die Anwendung genehmigen.

Standardmäßig können die Einstellungen von GitHub Apps in einer Organisation nur von Organisationsbesitzern verwaltet werden. Um weiteren Benutzern das Ändern der Entwicklereinstellungen von GitHub Apps im Besitz der Organisation zu erlauben, kann ein Benutzer Berechtigungen als GitHub App-Manager erteilen. GitHub App-Manager können keine Drittanbieteranwendungen verwalten. Weitere Informationen zum Hinzufügen und Entfernen von GitHub App-Managern in deiner Organisation findest du unter Rollen in einer Organisation.

Im Gegensatz dazu werden OAuth apps von Benutzerinnen autorisiert. Dadurch kann die App als authentifizierter Benutzerin agieren. Du kannst beispielsweise eine OAuth app autorisieren, mit der alle Benachrichtigungen für die oder den authentifizierten Benutzer*in ermittelt werden. Du kannst Berechtigungen für eine OAuth app jederzeit widerrufen.

Organisationsbesitzer können auswählen, ob externe Mitarbeiter Zugriff auf nicht genehmigte OAuth apps und GitHub Apps anfordern können. Weitere Informationen finden Sie unter Einschränken von OAuth-App- und GitHub App-Zugriffsanforderungen und -installationen.

Warnung

Durch das Widerrufen aller Berechtigungen einer OAuth app werden alle SSH-Schlüssel gelöscht, die die Anwendung im Namen des Benutzers generiert hat, einschließlich der Bereitstellungsschlüssel.

GitHub-AppsOAuth apps
Sie müssen ein Organisationsbesitzer sein oder über Administratorberechtigungen in einem Repository verfügen, um eine GitHub App in einer Organisation zu installieren. Wenn eine GitHub App in einem Repository installiert ist und Organisationsberechtigungen erfordert, muss der Organisationsbesitzer die Anwendung genehmigen.Du kannst eine OAuth app für den Zugriff auf Ressourcen autorisieren.
Sie können eine GitHub App in Ihrem persönlichen Repository installieren.Du kannst eine OAuth app für den Zugriff auf Ressourcen autorisieren.
Du musst Organisationsbesitzerin oder Besitzerin eines persönlichen Repositorys sein bzw. über Administratorberechtigungen in einem Repository verfügen, um eine GitHub-App zu deinstallieren und den Zugriff zu entfernen.Du kannst ein OAuth-Zugriffstoken löschen, um den Zugriff zu entfernen.
Sie müssen ein Organisationsbesitzer sein oder über Administratorberechtigungen in einem Repository verfügen, um eine GitHub App-Installation anzufordern.Ist eine Organisationsanwendungsrichtlinie aktiv, können alle Organisationsmitglieder die Installation einer OAuth app in einer Organisation anfordern. Die oder der Organisationsbesitzer*in muss die Anforderung genehmigen oder ablehnen.

Worauf können GitHub-Apps und OAuth apps zugreifen?

Kontobesitzer*innen können eine GitHub App in einem Konto verwenden, ohne Zugriff auf weitere Ressourcen zu gewähren. Du kannst beispielsweise den Builddienst eines Drittanbieters in der Organisation deines Arbeitgebers installieren, diesem Builddienst jedoch keinen Zugriff auf Repositorys in deinem persönlichen Konto gewähren. Eine GitHub App bleibt installiert, wenn die Person, die sie eingerichtet hat, die Organisation verlässt.

Eine autorisierte OAuth app hat Zugriff auf alle Ressourcen, auf die eine Benutzerin oder Organisationsbesitzer*in zugreifen kann.

GitHub-AppsOAuth apps
Durch die Installation einer GitHub App erhält die App Zugriff auf die ausgewählten Repositorys eines Benutzer- oder Organisationskontos.Durch die Autorisierung wird einer OAuth app Zugriff auf die zugänglichen Ressourcen des Benutzers bzw. der Benutzerin gewährt. Beispielsweise Repositories, auf die sie zugreifen können.
Das Installationstoken aus einer GitHub App verliert den Zugriff auf Ressourcen, wenn ein Administrator Repositorys aus der Installation entfernt.Ein OAuth-Zugriffstoken verliert den Zugriff auf Ressourcen, wenn die oder der Benutzer*in den Zugriff verliert (wenn z. B. ihr oder sein Schreibzugriff auf ein Repository entfernt wird).
Die Zugriffstoken für die Installation werden mit den vom Ersteller der Anwendung gewählten Berechtigungen auf bestimmte Repositorys beschränkt.Ein OAuth-Zugriffstoken wird über Geltungsbereiche beschränkt.
GitHub Apps können separaten Zugriff auf Probleme und Pullanforderungen anfordern, ohne auf den tatsächlichen Inhalt des Repositorys zuzugreifen.OAuth apps müssen den repo-Scope anfordern, um Zugriff auf Issues, Pull Requests oder andere Ressourcen zu erhalten, die dem Repository gehören.
GitHub Apps unterliegen nicht organisationsspezifischen Anwendungsrichtlinien. Eine GitHub App hat nur Zugriff auf die Repositorys, die ein Organisationsbesitzer gewährt hat.Wenn eine Anwendungsrichtlinie einer Organisation aktiv ist, kann die Installation einer OAuth app nur durch einen Organisationsbesitzerin autorisiert werden. Wenn die OAuth app installiert ist, erhält sie Zugriff auf alles, was für das Token sichtbar ist, über das derdie Organisationsbesitzerin innerhalb der genehmigten Organisation verfügt.
Eine GitHub App empfängt ein Webhook-Ereignis, wenn eine Installation geändert oder entfernt wird. Dadurch wird die oder der App-Ersteller*in informiert, wenn sie oder er mehr oder weniger Zugriff auf die Ressourcen einer Organisation erhalten hat.Abhängig davon, wie sich der Zugriff der gewährenden Benutzer*innen ändert, können OAuth apps den Zugriff auf eine Organisation oder ein Repository jederzeit verlieren. Die OAuth app informiert dich nicht, wenn sie Zugriff auf eine Ressource verliert.

Tokenbasierte Identifizierung

Hinweis

GitHub Apps können auch ein benutzerbasiertes Token verwenden. Weitere Informationen finden Sie unter Authentifizieren mit einer GitHub App im Namen eines Benutzers.

GitHub-AppsOAuth apps
Eine GitHub-App kann ein Installationszugriffstoken anfordern, indem ein privater Schlüssel mit einem JSON-Webtokenformat außerhalb des Bandformats verwendet wird.Eine OAuth app kann ein Anforderungstoken nach einer Umleitung über eine Webanforderung gegen ein Zugriffstoken tauschen.
Ein Installationstoken identifiziert die App als GitHub Apps-Bot, z. B. @jenkins-bot.Mit einem Zugriffstoken wird die App als diejenige oder derjenige Benutzer*in identifiziert, die bzw. der das Token für die App gewährt hat (z. B. @octocat).
Installationszugriffstoken laufen nach einer vordefinierten Zeit ab (derzeit nach 1 Stunde).OAuth-Token bleiben aktiv, bis sie vom Kunden widerrufen werden.
Für GitHub Apps, die in Organisationen oder Repositorys installiert sind, gelten die Ratenlimits, die sich mit der Anzahl der Installationen erhöhen. Weitere Informationen finden Sie unter Preisbeschränkungen für GitHub Apps.OAuth-Token verwenden die Ratebegrenzung des Benutzers von 5.000 Anforderungen pro Stunde.
Zinslimiterhöhungen können sowohl auf GitHub-App-Ebene (auswirkungen auf alle Installationen) als auch auf einzelner Installationsebene gewährt werden.Ratenbegrenzungserhöhungen werden pro OAuth app gewährt. Die Erhöhung gilt für jedes Token, das für diese OAuth app ausgestellt wird.
GitHub Apps können sich im Namen der Benutzerin oder des Benutzers authentifizieren. Der Flow zur Autorisierung ist derselbe wie der Autorisierungsflow der OAuth app. Benutzerzugriffstoken können ablaufen und mit einem Aktualisierungstoken verlängert werden. Weitere Informationen findest du unter Aktualisieren von Benutzerzugriffstoken und Authentifizieren mit einer GitHub App im Namen eines Benutzers.Beim von OAuth apps verwendeten OAuth-Flow wird eine OAuth app im Namen der Benutzerin bzw. des Benutzers autorisiert. Dies ist derselbe Flow, der zum Generieren eines Benutzerzugriffstoken für eine GitHub App verwendet wird.

Anfordern von Berechtigungsstufen für Ressourcen

Im Gegensatz zu OAuth apps verfügen GitHub-Apps über gezielte Berechtigungen, mit denen sie lediglich Zugriff auf Ressourcen anfordern können, die sie benötigen. Beispielsweise kann eine CI (Continuous Integration) GitHub App Lesezugriff auf Repositoryinhalte und Schreibzugriff auf die Status-API anfordern. Eine andere GitHub App kann keinen Lese- oder Schreibzugriff auf Code haben, aber dennoch die Möglichkeit haben, Probleme, Bezeichnungen und Meilensteine zu verwalten. OAuth apps können keine granulare Berechtigungen verwenden.

ZugriffGitHub Apps (berechtigungen read oder write)OAuth apps
          **Für Zugriff auf öffentliche Repositorys** | Das öffentliche Repository muss während der Installation ausgewählt werden. | 
          `public_repo` Bereich. |

| Für Zugriff auf Repositorycode/-inhalte | Repository-Inhalt | repo Bereich. | | Für Zugriff auf Issues, Labels und Meilensteine | Probleme | repo Bereich. | | Zum Zugriff auf Pull Requests, Labels und Meilensteine | Pull Requests | repo Bereich. | | Für Zugriff auf Commitstatus (für CI-Builds) | Commitstatus | repo:status Bereich. | | Für Zugriff auf Bereitstellungen und Bereitstellungsstatus | Bereitstellungen | repo_deployment Bereich. | | Für den Empfang von Ereignissen über einen Webhook | Eine GitHub App enthält standardmäßig einen Webhook. | Der write:repo_hook- oder write:org_hook-Bereich. |

Repository-Erkennung

GitHub AppsOAuth apps
GitHub Apps können /installation/repositories nutzen, um zu sehen, auf welche Repositorys die Installation zugreifen kann.OAuth apps erhalten anhand von /user/repos eine Benutzeransicht und anhand von /orgs/:org/repos eine Organisationsansicht mit Informationen zu den Repositorys, auf die zugegriffen werden kann.
GitHub Apps erhalten Webhooks, wenn Repositorys hinzugefügt oder aus der Installation entfernt werden.OAuth apps erstellen Organisationswebhooks für Benachrichtigungen, wenn ein neues Repository innerhalb einer Organisation erstellt wird.

webhooks

GitHub-AppsOAuth apps
Standardmäßig verfügen GitHub Apps über einen einzelnen Webhook, der die Ereignisse empfängt, auf die sie für jedes Repository konfiguriert sind, auf das sie Zugriff haben.OAuth apps fordern den Webhookbereich an, um einen Repositorywebhook für jedes Repository zu erstellen, von dem sie Ereignisse empfangen müssen.
GitHub-Apps erhalten mit der Erlaubnis eines Organisationsmitglieds bestimmte Ereignisse auf Organisationsebene.OAuth apps fordern den Webhookbereich der Organisation an, um einen Organisationswebhook für jede Organisation zu erstellen, von der sie Ereignisse auf Organisationsebene empfangen müssen.
Webhooks werden automatisch deaktiviert, wenn die GitHub App deinstalliert wird.Webhooks werden nicht automatisch deaktiviert, wenn das Zugriffstoken einer OAuth app gelöscht wird, und es gibt keine Möglichkeit, sie automatisch zu bereinigen. Du musst die Benutzer*innen bitten, dies manuell zu tun.

Git-Zugriff

GitHub AppsOAuth apps
GitHub-Apps fordern die Berechtigung für Repositoryinhalte an und verwenden dein Installationszugriffstoken für die Authentifizierung über HTTP-basierten Git-Zugriff. Weitere Informationen findest du unter Generieren eines Installationszugriffstokens für eine GitHub App.OAuth apps fordern den Bereich write:public_key an und nutzen die API zum Erstellen eines Bereitstellungsschlüssels. Diesen Schlüssel kannst du dann zum Ausführen von Git-Befehlen verwenden.
Das Token wird als HTTP-Kennwort verwendet.Das Token wird als HTTP-Benutzername verwendet.

Computer- und Botkonten im Vergleich

Computerbenutzerkonten sind OAuth-basierte persönliche Konten, die automatisierte Systeme mithilfe des Benutzersystems von GitHub trennen.

Bot-Konten sind spezifisch für GitHub Apps und sind in jede GitHub App integriert.

GitHub AppsOAuth apps
GitHub-App-Bots verbrauchen keine GitHub Enterprise Lizenz.Ein Computerbenutzerkonto verbraucht eine GitHub Enterprise Lizenz.
Da einem GitHub App-Bot niemals ein Kennwort gewährt wird, kann sich ein Kunde nicht direkt anmelden.Computerbenutzerkonten werden Benutzernamen und Kennwörter zugewiesen, die vom Kunden verwaltet und geschützt werden.