Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

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 Enterprise Server basiert, dürfen GitHub Enterprise Server-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 Enterprise Server-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, personal access tokens für die Authentifizierung bei der GitHub-API zu verwenden.

$ curl -u USERNAME:TOKEN http(s)://HOSTNAME/api/v3/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

Um die Standardauthentifizierung mit der GitHub Enterprise Server-API zu nutzen, musst du nur den Benutzernamen und das Kennwort des Kontos senden.

Der folgende curl-Befehl an die API würde dich zum Beispiel authentifizieren, wenn du <username> durch deinen GitHub Enterprise Server-Benutzernamen ersetzt. (Du wirst über curl aufgefordert, dein Kennwort einzugeben.)

$ curl -u USERNAME http(s)://HOSTNAME/api/v3/user

Wenn du die zweistufige Authentifizierung aktiviert hast, solltest gut mit dem Umgang mit der zweistufigen Authentifizierung vertraut sein.

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 oder OAuth-Token anstelle deines Benutzernamens und Kennworts verwenden.

Du kannst ein neues personal access token oder über den Endpunkt „[Erstellen einer neuen Autorisierung][/rest/reference/oauth-authorizations#create-a-new-authorization]“ in der OAuth-Autorisierungs-API erstellen, um ein neues OAuth-Token zu generieren. 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 Enterprise Server-API authentifizieren. Das einzige Szenario, in dem du dich mit deinem Benutzernamen und Kennwort authentifizieren musst, ist bei der Erstellung deines OAuth-Tokens oder der Verwendung der OAuth-Autorisierungs-API.

Verwenden der OAuth-Autorisierungs-API mit der zweistufigen Authentifizierung

Wenn du Aufrufe an die OAuth-Autorisierungs-API sendest, musst du für die Standardauthentifizierung ein einmaliges Kennwort (One-Time Password, OTP) sowie deinen Benutzernamen und dein Kennwort anstelle von Token verwenden. Wenn du versuchst, dich mit der OAuth-Autorisierungs-API zu authentifizieren, antwortet der Server mit 401 Unauthorized und einem der folgenden Header, um dir mitzuteilen, dass du einen Code für die zweistufige Authentifizierung benötigst:

X-GitHub-OTP: required; SMS oder X-GitHub-OTP: required; app.

Dieser Header teilt dir mit, wie dein Konto die Codes für die zweistufige Authentifizierung empfängt. Je nachdem, wie du dein Konto einrichtest, erhältst du deine OTP-Codes entweder per SMS oder über eine Anwendung wie Google Authenticator oder 1Password. Weitere Informationen findest du unter Konfigurieren der zweistufigen Authentifizierung. Übergib das OTP im Header:

$ curl --request POST \
  --url https://api.github.com/authorizations \
  --header 'authorization: Basic PASSWORD' \
  --header 'content-type: application/json' \
  --header 'x-github-otp: OTP' \
  --data '{"scopes": ["public_repo"], "note": "test"}'