Skip to main content

Authentifizieren mit einer GitHub-App im Namen von Benutzer*innen

Deine GitHub-App kann Aktionen im Namen von Benutzer*innen ausführen, z. B. das Erstellen eines Issues, das Veröffentlichen eines Kommentars oder das Erstellen einer Bereitstellung.

Deine App kann API-Anforderungen im Namen von Benutzerinnen stellen. Deine API-Anforderungen, die von einer App im Namen von Benutzerinnen gestellt werden, werden diesen Benutzerinnen zugeordnet. Wenn deine App beispielsweise Kommentare im Namen von Benutzerinnen postet, wird auf der Benutzeroberfläche GitHub das Avatarfoto der jeweiligen Benutzer*innen zusammen mit dem Identicon-Badge der App als Autor des Issues angezeigt.

Screenshot eines Kommentars mit einem Benutzeravatar und überlagertem Badge des App-Identicons. Der Avatar ist orange umrandet.

Wenn die Anforderung einen entsprechenden Eintrag in den Überwachungs- und Sicherheitsprotokollen nach sich zieht, werden in diesen Protokollen die Benutzer*innen als Akteur aufgeführt, als „programmatic_access_type“ wird jedoch „GitHub App user-to-server token“ angegeben.

Um eine API-Anforderung im Namen von Benutzerinnen zu erstellen, müssen die Benutzerinnen deine App autorisieren. Wenn eine App in einer Organisation mit mehreren Mitgliedern installiert ist, muss jedes Mitglied die App autorisieren, bevor die App in dessen Namen handeln kann. Die App muss nicht installiert werden, damit sie von Benutzer*innen autorisiert werden kann.

Wenn ein Benutzer eine App auf einem Konto installiert, gewährt er der App die Berechtigung für den Zugriff auf die angeforderten Ressourcen. Während des Installationsprozesses wird auch eine Liste der Kontoberechtigungen angezeigt, die die App für einzelne Benutzerinnen anfordern kann. Wenn Benutzerinnen eine App autorisieren, gewähren sie der App die Berechtigung, in ihrem Namen zu handeln, sowie die von der App angeforderten Kontoberechtigungen.

Nachdem deine App von Benutzer*innen autorisiert wurde, kannst du ein Benutzerzugriffstoken generieren, bei dem es sich um einen OAuth-Tokentyp handelt. Du musst das Benutzerzugriffstoken im Authorization-Header deiner nachfolgenden API-Anforderungen senden. Weitere Informationen, wie du Benutzer zum Autorisieren deiner App und zum Generieren von Benutzerzugriffstoken aufforderst, findest du unter Generieren eines Benutzerzugriffstokens für eine GitHub-App.

Wenn du im Namen eines Benutzers arbeitest, ist der Zugriff deiner App beschränkt, um einen sicheren und angemessenen Zugriff sicherzustellen:

  • Die App kann nur auf Ressourcen zugreifen, auf die der Benutzer Zugriff hat. Wenn ein Benutzer keinen Zugriff auf ein Repository hat, kann deine App nicht im Namen dieses Repositorys zugreifen, auch wenn die App in diesem Repository installiert ist.
  • Die App kann nur auf Ressourcen zugreifen, für die sie zugriffsberechtigt ist. Wenn deine App nicht über die Berechtigung Issues verfügt, kann sie keine Issues für den Benutzer erstellen oder lesen, auch wenn der Benutzer Zugriff auf das Repository hat.
  • Die App kann nur auf Ressourcen in einem Konto zugreifen, in dem sie installiert ist. Wenn deine App nur im persönlichen Konto eines Benutzers installiert ist, kann sie nicht auf Ressourcen in einer Organisation zugreifen, in der der Benutzer Mitglied ist, es sei denn, die App ist auch in dieser Organisation installiert.

Anforderungen, die mit einem Benutzerzugriffstoken gesendet werden, werden manchmal als User-to-Server-Anforderungen bezeichnet.

Ein Token verfügt über die gleichen Funktionen für den Zugriff auf Ressourcen und zum Ausführen von Aktionen für diese Ressourcen, über die der Besitzer des Tokens verfügt. Er ist zudem durch alle Bereiche oder Berechtigungen beschränkt, die dem Token zugewiesen werden. Ein Token kann einem Benutzer keine zusätzlichen Zugriffsfunktionen gewähren.

Wenn du die App-Aktivität nicht einzelnen Benutzer*innen, sondern der App zuordnen möchtest, solltest du sie stattdessen als App-Installation authentifizieren. Weitere Informationen finden Sie unter Authentifizierung als GitHub-App-Installation.

Hinweis

Wenn eine Benutzerin meldet, dass nach der Autorisierung deiner GitHub App keine Ressourcen im Besitz seiner bzw. ihrer Organisation angezeigt werden können und die Organisation SAML-SSO verwendet, weise dendie Benutzerin an, vor der erneuten Autorisierung eine aktive SAML-Sitzung für die Organisation zu starten. Weitere Informationen findest du unter SAML- und GitHub-Apps in der GitHub Enterprise Cloud-Dokumentation.