The Wayback Machine - https://web.archive.org/web/20230105012458/https://docs.github.com/de/rest/overview/other-authentication-methods
Skip to main content

Andere Authentifizierungsmethoden

Du kannst die Standardauthentifizierung zum Testen in einer Nichtproduktionsumgebung verwenden.

Während die API mehrere Methoden für die Authentifizierung bereitstellt, wird für Produktionsanwendungen dringend die Verwendung von OAuth empfohlen. Die anderen bereitgestellten Methoden sollen für Skripts oder Tests verwendet werden (d. h. für Fälle, in denen eine vollständige OAuth-Authentifizierung zu viel des Guten wäre). Drittanbieteranwendungen, deren Benutzerauthentifizierung auf GitHub basiert, dürfen GitHub-Anmeldeinformationen weder anfordern noch erfassen. Stattdessen müssen sie den OAuth-Webflow verwenden.

Standardauthentifizierung

Die API unterstützt die in RFC2617 definierte Standardauthentifizierung mit einigen geringfügige Unterschieden. Der Hauptunterschied besteht darin, dass nicht authentifizierte Anforderungen laut dem RFC mit 401 Unauthorized-Antworten beantwortet werden müssen. An vielen Stellen würde dies die Existenz von Benutzerdaten offenlegen. Stattdessen antwortet die GitHub-API mit 404 Not Found. Dies kann bei HTTP-Bibliotheken, die von einer 401 Unauthorized-Antwort ausgehen, zu Problemen führen. Die Lösung besteht darin, den Authorization-Header manuell zu erstellen.

Über ein personal access tokens

Es wird empfohlen, fine-grained personal access tokens für die Authentifizierung bei der GitHub-API zu verwenden.

$ curl -u USERNAME:TOKEN https://api.github.com/user

Dieser Ansatz ist nützlich, wenn deine Tools nur die Standardauthentifizierung unterstützen, du aber die Sicherheitsfeatures von personal access token nutzen möchtest.

Per Benutzername und Kennwort

Hinweis: GitHub hat die Kennwortauthentifizierung für die API ab dem 13. November 2020 für alle GitHub.com-Konten eingestellt, einschließlich derjenigen mit einem GitHub Free-, GitHub Pro-, GitHub Team- oder GitHub Enterprise Cloud-Plan,. Du musst dich jetzt mit einem API-Token wie einem OAuth-Zugriffstoken, GitHub-App-Installationszugriffstoken oder personal access token bei der GitHub-API authentifizieren, je nachdem, was du mit dem Token tun musst. Weitere Informationen findest du unter Problembehandlung.

Authentifizierung per SAML-SSO

Hinweis: Integrationen und OAuth-Anwendungen, die Token im Auftrag anderer Benutzer*innen generieren, werden automatisch autorisiert.

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.

Wenn du über die API auf eine Organisation zugreifst, die bei der Authentifizierung SAML-SSO erzwingt, musst du ein personal access token erstellen und es für diese Organisation autorisieren. Besuche die in X-GitHub-SSO angegebene URL, um das Token für die Organisation zu autorisieren.

$ curl -v -H "Authorization: Bearer TOKEN" https://api.github.com/repos/octodocs-test/test

> X-GitHub-SSO: required; url=https://github.com/orgs/octodocs-test/sso?authorization_request=AZSCKtL4U8yX1H3sCQIVnVgmjmon5fWxks5YrqhJgah0b2tlbl9pZM4EuMz4
{
  "message": "Resource protected by organization SAML enforcement. You must grant your personal token access to this organization.",
  "documentation_url": "https://docs.github.com"
}

Wenn du Daten anforderst, die aus mehreren Organisationen stammen könnten (z. B. eine Liste der von dem Benutzer erstellten Issues), gibt der X-GitHub-SSO-Header an, für welche Organisationen du dein personal access token autorisieren musst:

$ curl -v -H "Authorization: Bearer TOKEN" https://api.github.com/user/issues

> X-GitHub-SSO: partial-results; organizations=21955855,20582480

Der Wert organizations ist eine durch Trennzeichen getrennte Liste der Organisations-IDs von Organisationen, für die du dein personal access token autorisieren musst.

Arbeiten mit der zweistufigen Authentifizierung

Wenn du die TFA aktiviert hast, musst du für die Standardauthentifizierung bei den meisten Endpunkten der REST-API ein personal access token verwenden.

Du kannst ein neues personal access token über die GitHub-Entwicklereinstellungen . Weitere Informationen findest du unter Erstellen eines personal access token für die Befehlszeile. Anschließend kannst du dich dank dieser Token mit OAuth-Token bei der GitHub-API authentifizieren.