• GitHub
  • Secret vault
  • Przechowywanie tokenów
  • OAuth
  • Logowanie społecznościowe

GitHub Apps vs. OAuth Apps: Wybierz właściwe połączenie GitHub

Porównaj GitHub Apps i OAuth Apps dla integracji z Logto. Poznaj kluczowe różnice w zakresie bezpieczeństwa, uprawnień, zarządzania tokenami i wybierz właściwą metodę uwierzytelniania GitHub dla swojej aplikacji.

Ran
Ran
Product & Design

Przestań tracić tygodnie na uwierzytelnianie użytkowników
Uruchamiaj bezpieczne aplikacje szybciej z Logto. Zintegruj uwierzytelnianie użytkowników w kilka minut i skup się na swoim głównym produkcie.
Rozpocznij
Product screenshot

Podczas integrowania uwierzytelniania GitHub w swojej aplikacji Logto masz do wyboru dwie opcje: GitHub Apps oraz GitHub OAuth Apps. Obie umożliwiają funkcję "Zaloguj się przez GitHub", lecz zapewniają zasadniczo różne doświadczenie pod względem bezpieczeństwa, zarządzania tokenami i dostępu do API. Ten przewodnik pomoże ci zrozumieć kluczowe różnice i wybrać odpowiednie podejście do swojego przypadku użycia.

Tło: Dwie ścieżki integracji z GitHub

Obecna dokumentacja Logto prowadzi cię przez konfigurację GitHub OAuth App w celu logowania społecznościowego. To prostsza i łatwiejsza opcja, która świetnie sprawdza się w podstawowych potrzebach uwierzytelniania. Jednak GitHub Apps to nowoczesne, zalecane przez GitHub rozwiązanie, oferujące lepsze funkcje bezpieczeństwa i bardziej szczegółową kontrolę.

Można to porównać tak: OAuth Apps są jak danie komuś klucza głównego do twojego domu — po autoryzacji dostaje on szeroki dostęp. GitHub Apps natomiast przypominają inteligentny system zamków ze specyficznymi kodami dostępu do różnych pokoi — użytkownicy mogą nadawać precyzyjnie określone uprawnienia, dokładnie odpowiadające potrzebom twojej aplikacji.

Kluczowe różnice w skrócie

Uprawnienia: Szerokie vs. szczegółowe

  • OAuth Apps używają szerokich zakresów — poproszenie o repo daje pełną kontrolę nad repozytorium.
  • GitHub Apps umożliwiają wybór szczegółowych uprawnień — możesz poprosić tylko o "Issues: tylko do odczytu" bez dostępu do kodu. Użytkownicy mogą także podczas instalacji wybrać konkretne repozytoria, a nie udzielać dostępu do wszystkich.

Bezpieczeństwo tokenów: Stałe vs. wygasające

  • OAuth Apps wystawiają tokeny, które nigdy nie wygasają (do czasu ręcznego odwołania), bez możliwości odświeżania.
  • GitHub Apps stosują krótkoterminowe tokeny (wygasające po 1 godzinie) z automatyczną możliwością odświeżenia — znacznie bezpieczniejsze dla długotrwałych aplikacji.

Tożsamość: Użytkownik vs. bot

  • OAuth Apps zawsze działają jako autoryzujący użytkownik (np. @octocat) i dzielą z nim limit zapytań (5,000 żądań/godzinę).
  • GitHub Apps mogą działać niezależnie jako bot (np. @my-app[bot]) i cieszyć się skalowalnym limitem zapytań, który rośnie wraz z użyciem — idealne do automatyzacji.

Kontrola dostępu: Wszystko albo nic vs. selektywna

  • OAuth Apps wymagają jednorazowej autoryzacji do wszystkich dostępnych zasobów.
  • GitHub Apps pozwalają użytkownikom zainstalować aplikację, wybrać konkretne repozytoria i otrzymywać powiadomienia webhook o zmianach uprawnień — zapewniając lepszą przejrzystość i kontrolę.

Trwałość: Zależna od użytkownika vs. niezależna

  • OAuth Apps są powiązane z autoryzującym użytkownikiem — jeśli deweloper utraci dostęp lub opuści organizację, aplikacja przestaje działać.
  • GitHub Apps działają dalej, nawet jeśli deweloper, który je zainstalował, opuści twoją organizację — gwarantując ciągłość działania automatyzacji i integracji.

Co wybrać?

Zarówno GitHub Apps jak i OAuth Apps działają płynnie z konektorem społecznościowym Logto. Secret Vault Logto bezpiecznie przechowuje tokeny z obu integracji, lecz każda daje inne doświadczenie:

Podstawowe logowanie społecznościowe przez OAuth Apps

Jeśli jedynym celem jest uwierzytelnianie użytkowników (Zaloguj przez GitHub) i nie zamierzasz później wywoływać API GitHub, OAuth App to najszybsza ścieżka:

  • Prosta konfiguracja: użytkownicy autoryzują twoją aplikację OAuth i logują się przez GitHub.
  • Tokeny są długowieczne (bez odświeżania): Logto może przechować token dostępu w Secret Vault, ale nie ma mechanizmu odświeżania — tokeny są ważne aż do odwołania.
  • Najlepsze gdy potrzebna jest tylko tożsamość użytkownika (email, nazwa, avatar) i nie wykonuje się automatycznych operacji przez API.

Dlaczego warto wybrać tę opcję: najszybsze wdrożenie do prototypów i aplikacji, które potrzebują tylko logowania i okazjonalnej synchronizacji profilu.

Rozszerzona integracja dzięki GitHub Apps

Wybierz GitHub App, gdy twoja aplikacja potrzebuje stałego dostępu do API GitHub, automatyzacji w tle lub większego bezpieczeństwa:

  • Precyzyjne uprawnienia i wybór repozytoriów przy instalacji pozwalają ograniczyć dostęp i łatwiej go audytować.
  • Tokeny są krótkoterminowe (zwykle 1 godzina) i GitHub Apps mogą generować tokeny odświeżające; gdy ta opcja jest włączona, Logto przechowuje oba tokeny (dostępu i odświeżania) w Secret Vault i zajmuje się ich rotacją, więc backend działa nieprzerwanie bez potrzeby ponownego logowania użytkownika.
  • Tożsamość aplikacji (bota) poprawia śledzenie działań i wyższy limit zapytań czyni ją niezawodną do rozbudowanej automatyzacji.

Najlepsze dla:

  • Platform SaaS zarządzających repozytoriami GitHub w imieniu użytkowników
  • Agentów AI pracujących z kodem, issue czy pull requestami
  • Aplikacji wymagających stałego dostępu do API
  • Narzędzi realizujących automatyzację w tle

Konfiguracja GitHub App z Logto

Konfiguracja GitHub App jest podobna do OAuth App, z kilkoma kluczowymi różnicami. Migracja z OAuth App do GitHub App wymaga niewielkiego nakładu pracy.

Tworzenie GitHub App

  1. Przejdź do "GitHub Settings > Developer settings > GitHub Apps"

  2. Kliknij "New GitHub App"

  3. Skonfiguruj:

    • Nazwa GitHub App: Unikalny identyfikator aplikacji
    • Homepage URL: Strona twojej aplikacji
    • Callback URL: Callback URI konektora Logto (jak w OAuth App)
    • Request user authorization (OAuth) during installation: Włącz
    • Webhook: Opcjonalnie, zgodnie z potrzebami
    • Uprawnienia: Wybierz szczegółowe uprawnienia (np. "Issues: tylko do odczytu")
    • Uprawnienia użytkownika: Dodaj uprawnienia do konta, jeśli działasz w imieniu użytkowników
  4. Wygeneruj klienta secret (jak w OAuth App)

integrate-github-apps.png

Konfiguracja w Logto

Konfiguracja konektora Logto jest niemal identyczna:

  1. Podaj Client ID z GitHub App
  2. Dodaj Client secret
  3. Włącz "Store tokens for persistent API access" jeśli chcesz korzystać z API GitHub
  4. Kluczowa różnica - Scopes:
    • W przeciwieństwie do OAuth Apps (gdzie zakresy dodajesz w polu scopes w Logto), w GitHub App uprawnienia definiujesz w ustawieniach GitHub App.
    • Zostaw pole scope w Logto puste
  5. Żądanie tokenu odświeżania (opcjonalnie)
    • Dodaj offline_access do pola scope w Logto, by włączyć tokeny odświeżające
    • GitHub automatycznie wystawia token odświeżający, a Logto zajmuje się jego rotacją i przechowuje oba tokeny w Secret Vault
    • Uwaga: OAuth Apps nie obsługują tokenów odświeżających — ich tokeny dostępu nigdy nie wygasają, więc offline_access nie ma tu zastosowania. Przy GitHub Apps jest inaczej.

integrate-github-connector-in-logto.png

Podsumowanie

Chociaż OAuth Apps są nadal dobrym wyborem do podstawowej autoryzacji, to GitHub Apps są przyszłością integracji z GitHubem. Zapewniają lepsze bezpieczeństwo dzięki wygasającym tokenom, bardziej precyzyjne modele uprawnień oraz lepszą kontrolę użytkownika nad dostępem.

Dla użytkowników Logto oba rozwiązania współpracują z konektorem społecznościowym. Ostateczny wybór zależy od specyficznych potrzeb:

  • Zacznij od prostych OAuth Apps jeśli zależy ci tylko na uwierzytelnianiu
  • Przejdź na GitHub Apps gdy potrzebujesz dostępu do API, automatyzacji lub większego bezpieczeństwa

Pamiętaj — Secret Vault Logto i automatyczne odświeżanie tokenów sprawia, że zarządzanie tokenami GitHub App jest tak proste jak przy OAuth Apps, bez kompromisów w bezpieczeństwie. Niezależnie czy tworzysz asystenta AI do kodowania, platformę do zarządzania projektami czy narzędzie zwiększające produktywność programistów — teraz wiesz, jak wybrać właściwą integrację GitHub dla swojej aplikacji Logto.

Gotowy, by zacząć? Zajrzyj do konektora GitHub Logto, by rozpocząć integrację logowania przez GitHub już dziś.

Dodatkowe zasoby