Skip to main content

Authentifizieren bei der REST-API

Sie können sich bei der REST-API authentifizieren, um auf mehr Endpunkte zuzugreifen und ein höheres Ratenlimit zu erreichen.

Informationen zur Authentifizierung

Viele REST-API-Endpunkte erfordern die Authentifizierung oder geben im Fall einer Authentifizierung zusätzliche Informationen zurück. Darüber hinaus können Sie mehr Anforderungen pro Stunde stellen, wenn Sie authentifiziert sind.

Um Ihre Anforderung zu authentifizieren, müssen Sie ein Authentifizierungstoken mit den erforderlichen Bereichen oder Berechtigungen bereitstellen. Es gibt verschiedene Möglichkeiten zum Abrufen eines Tokens: Sie können ein personal access tokenToken erstellen, ein Token mit einem GitHub App generieren oder den integrierten GITHUB_TOKENGitHub Actions Workflow verwenden.

Nachdem Sie ein Token erstellen, können Sie eine Anforderung authentifizieren, indem Sie ein Token im Authorization-Header Ihrer Anforderung senden. Zum Beispiel können Sie im folgenden Beispiel YOUR-TOKEN durch einen Verweis auf Ihr Token ersetzen:

curl --request GET \
--url "https://api.github.com/octocat" \
--header "Authorization: Bearer YOUR-TOKEN" \
--header "X-GitHub-Api-Version: 2026-03-10"

Hinweis

In den meisten Fällen kannst du Authorization: Bearer oder Authorization: token verwenden, um ein Token zu übergeben. Wenn du jedoch ein JWT (JSON Web Token) übergibst, musst du Authorization: Bearer verwenden.

Grenzwert für fehlgeschlagene Anmeldeversuche

Wenn Sie versuchen, einen REST-API-Endpunkt ohne ein Token oder mit einem Token zu verwenden, das über unzureichende Berechtigungen verfügt, wird die Meldung 404 Not Found oder 403 Forbidden zurückgegeben. Bei der Authentifizierung mit ungültigen Anmeldeinformationen wird anfänglich eine 401 Unauthorized-Antwort zurückgegeben.

Nach der Erkennung mehrerer Anforderungen mit ungültigen Anmeldeinformationen innerhalb eines kurzen Zeitraums lehnt die API vorübergehend alle Authentifizierungsversuche für diesen Benutzerin (auch Benutzer*innen mit gültigen Anmeldeinformationen) mit einer 403 Forbidden-Antwort ab. Weitere Informationen finden Sie unter Ratenbegrenzungen für die REST-API.

Authentifizieren mit einem personal access token

Wenn Sie die GitHub REST-API für den persönlichen Gebrauch nutzen möchten, können Sie eine personal access token. Wenn möglich, empfiehlt GitHub die Verwendung eines fine-grained personal access token anstelle von personal access token (classic). Weitere Informationen zum Erstellen eines personal access token finden Sie unter Verwalten deiner persönlichen Zugriffstoken.

Wenn Sie ein fine-grained personal access token verwenden, benötigt Ihr fine-grained personal access token bestimmte Berechtigungen, um auf jeden REST-API-Endpunkt zugreifen zu können. Das REST-API-Referenzdokument für jeden Endpunkt gibt an, ob der Endpunkt mit fine-grained personal access tokens arbeitet und angibt, welche Berechtigungen erforderlich sind, damit das Token den Endpunkt verwenden kann. Einige Endpunkte erfordern möglicherweise mehrere Berechtigungen und einige möglicherweise eine von mehreren Berechtigungen. Eine Übersicht, auf welche REST-API-Endpunkte mit fine-grained personal access token jeder Berechtigung zugreifen können, finden Sie unter Erforderliche Berechtigungen für differenzierte persönliche Zugangstoken.

Wenn Sie eine personal access token (classic)Anwendung verwenden, sind bestimmte Bereiche erforderlich, um auf jeden REST-API-Endpunkt zuzugreifen. Allgemeine Informationen zu den zu wählenden Bereichen findest du unter Bereiche für OAuth-Apps.

Personal access tokens fungieren als Ihre Identität (begrenzt durch die bereiche oder Berechtigungen, die Sie ausgewählt haben), wenn Sie Anforderungen an die REST-API stellen. Daher ist es wichtig, Ihre personal access tokens Sicherheit zu wahren. Weitere Informationen zur Sicherung Ihrer personal access tokens Sicherheit finden Sie unter Schützen deiner API-Anmeldeinformationen.

Personal access tokens und SAML-SSO

Wenn Sie ein personal access token (classic) für den Zugriff auf eine Organisation verwenden, die SAML Single Sign-On (SSO) für die Authentifizierung erzwingt, müssen Sie Ihr Token nach der Erstellung autorisieren. Fine-grained personal access tokens werden bei der Token-Erstellung autorisiert, bevor Zugriff auf die Organisation gewährt wird. Weitere Informationen finden Sie unter Autorisieren eines persönlichen Zugriffstokens für die Verwendung mit Single Sign-On.

Wenn Sie Ihr personal access token (classic) nicht für SAML-SSO autorisieren, bevor Sie versuchen, es für den Zugriff auf eine bestimmte Organisation zu verwenden, die SAML-SSO erzwingt, wird möglicherweise ein 404 Not Found- oder 403 Forbidden-Fehler angezeigt. Wenn Sie einen Fehler "403 Forbidden" erhalten, enthält der header X-GitHub-SSO eine URL, der Sie folgen können, um Ihr Token zu autorisieren. Die URL ist für eine Stunde gültig.

Wenn Sie Ihr personal access token (classic) SAML-SSO nicht autorisieren, bevor Sie versuchen, sie für den Zugriff auf mehrere Organisationen zu verwenden, gibt die API keine Ergebnisse aus den Organisationen zurück, die SAML SSO erfordern, und der X-GitHub-SSO Header gibt die ID der Organisationen an, die SAML SSO-Autorisierung ihres personal access token (classic)Unternehmens erfordern. Beispiel: X-GitHub-SSO: partial-results; organizations=21955855,20582480.

Authentifizieren mit einem von einer App generierten Token

Wenn Sie die API für eine Organisation oder im Auftrag eines anderen Benutzers verwenden möchten, GitHub empfiehlt die Verwendung einer GitHub App. Weitere Informationen finden Sie unter Informationen zur Authentifizierung mit einer GitHub-App.

Die REST-API-Referenzdokumentation zu jedem Endpunkt gibt an, ob der Endpunkt mit GitHub Apps funktioniert und welche Berechtigungen erforderlich sind, damit die App den Endpunkt verwenden kann. Einige Endpunkte erfordern möglicherweise mehrere Berechtigungen und einige möglicherweise eine von mehreren Berechtigungen. Eine Übersicht, auf welche REST-API-Endpunkte mit GitHub App jeder Berechtigung zugreifen können, finden Sie unter Erforderliche Berechtigungen für GitHub Apps.

Sie können auch ein OAuth-Token mit einer OAuth app für den Zugriff auf die REST-API erstellen. Es wird jedoch empfohlen, GitHub stattdessen eine GitHub App zu verwenden. GitHub Apps mehr Kontrolle über den Zugriff und die Berechtigung zulassen, über die die App verfügt.

Von Apps erstellte Zugriffstoken werden automatisch für SAML-SSO autorisiert.

Verwenden der Standardauthentifizierung

Für einige REST-API-Endpunkte für GitHub Apps und OAuth apps ist die Verwendung der Basic-Authentifizierung erforderlich, um auf die Endpunkte zuzugreifen. Sie verwenden die Client-ID der App als Benutzernamen und den geheimen Clientschlüssel der App als Kennwort.

Zum Beispiel:

curl --request POST \
--url "https://api.github.com/applications/YOUR_CLIENT_ID/token" \
--user "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2026-03-10" \
--data '{
  "access_token": "ACCESS_TOKEN_TO_CHECK"
}'

Die Client-ID und der geheime Clientschlüssel sind mit der App verknüpft, nicht mit dem Besitzer der App oder einem Benutzer/einer Benutzerin, der/die die App autorisiert hat. Sie werden verwendet, um Vorgänge im Namen der Anwendung auszuführen, wie z. B. die Erstellung von Zugriffstokens.

Wenn Sie der Besitzer eines GitHub App oder OAuth app sind oder wenn Sie App-Manager für ein GitHub App sind, können Sie die Client-ID finden und auf der Einstellungsseite Ihrer App ein Clientgeheimnis generieren. So navigieren Sie zur Einstellungsseite Ihrer App:

  1. Klicken Sie in der oberen rechten Ecke einer beliebigen Seite auf Ihr Profilbild GitHub.
  2. Navigieren Sie zu den Einstellungen für Ihr Konto.
    • Klicken Sie bei einer App, die zu einem persönlichen Konto gehört, auf Einstellungen.
    • Für eine App im Besitz einer Organisation:
      1. Klicke Sie auf Ihre Organisationen.
      2. Klicke dann rechts neben der Organisation auf Einstellungen.
  3. Klicke in der linken Randleiste auf Developer settings.
  4. Klicken Sie in der linken Seitenleiste auf GitHub Apps oder OAuth apps.
  5. Klicken Sie für GitHub Apps rechts neben dem GitHub App, auf das Sie zugreifen möchten, auf Bearbeiten. Klicken Sie für OAuth apps auf die App, auf die Sie zugreifen möchten.
  6. Neben der Client-ID wird die Client-ID für Ihre App angezeigt.
  7. Klicken Sie neben geheimen Clientschlüsseln auf Neuen geheimen Clientschlüssel generieren, um einen geheimen Clientschlüssel für Ihre App zu generieren.

Authentifizieren in einem GitHub Actions Workflow

Wenn Sie die API in einem GitHub Actions Workflow verwenden möchten, empfiehlt GitHub, sich bei der integrierten GITHUB_TOKEN zu authentifizieren, anstatt ein Token zu erstellen. Sie können mit dem Schlüssel GITHUB_TOKEN dem permissions Berechtigungen erteilen. Weitere Informationen finden Sie unter Verwenden von GITHUB_TOKEN für die Authentifizierung in Workflows.

Wenn dies nicht möglich ist, können Sie Ihr Token als geheimen Schlüssel speichern und den Namen Ihres geheimen Schlüssels in Ihrem GitHub Actions Workflow verwenden. Weitere Informationen zu Geheimnissen findest du unter Verwenden von Geheimnissen in GitHub-Aktionen.

Authentifizierung in einem GitHub Actions Workflow mit GitHub CLI

Um eine authentifizierte Anfrage an die API in einem GitHub Actions-Workflow unter Verwendung von GitHub CLI zu stellen, können Sie den Wert von GITHUB_TOKEN als Umgebungsvariable speichern und das Schlüsselwort run verwenden, um den Unterbefehl GitHub CLIapi auszuführen. Weitere Informationen zum Schlüsselwort run findest du unter Workflowsyntax für GitHub Actions.

Ersetzen Sie PATH im folgenden Beispielworkflow durch den Pfad des Endpunkts. Weitere Informationen zum Pfad finden Sie unter Erste Schritte mit der REST-API.

jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions: {}
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh api /PATH

Authentifizierung in einem GitHub Actions-Workflow mit curl

Um in einem GitHub Actions-Workflow unter Verwendung von curl eine authentifizierte Anfrage an die API zu stellen, können Sie den Wert von GITHUB_TOKEN als Umgebungsvariable speichern und das Schlüsselwort run verwenden, um eine curl-Anfrage an die API auszuführen. Weitere Informationen zum Schlüsselwort run findest du unter Workflowsyntax für GitHub Actions.

Ersetzen Sie PATH im folgenden Beispielworkflow durch den Pfad des Endpunkts. Weitere Informationen zum Pfad finden Sie unter Erste Schritte mit der REST-API.

YAML
jobs:
  use_api:
    runs-on: ubuntu-latest
    permissions: {}
    steps:
      - env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          curl --request GET \
          --url "https://api.github.com/PATH" \
          --header "Authorization: Bearer $GH_TOKEN"

Authentifizieren in einem GitHub Actions Workflow mit JavaScript

Ein Beispiel für die Authentifizierung in einem GitHub Actions Workflow mit JavaScript finden Sie unter Skripterstellung mit der REST-API und JavaScript.

Authentifizieren mit Benutzername und Kennwort

Die Authentifizierung mit dem Benutzernamen und Kennwort wird nicht unterstützt. Wenn Sie versuchen, sich mit Ihrem Benutzernamen und Kennwort zu authentifizieren, wird ein 4xx-Fehler angezeigt.

Weiterführende Lektüre