• GitHub
  • Tajny sejf
  • Przechowywanie tokenów
  • OAuth
  • Logowanie społecznościowe

# GitHub Apps a aplikacje OAuth: Wybierz odpowiednie połączenie z GitHub

Porównaj GitHub Apps i OAuth Apps dla integracji z Logto. Poznaj kluczowe różnice w bezpieczeństwie, uprawnieniach, zarządzaniu 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 integracji uwierzytelniania GitHub w swojej aplikacji Logto masz dwie opcje: GitHub Apps oraz GitHub OAuth Apps. Chociaż obie umożliwiają funkcję "Zaloguj się przez GitHub", oferują zasadniczo różne doświadczenia pod względem bezpieczeństwa, zarządzania tokenami oraz dostępu do API. Ten przewodnik pomoże ci zrozumieć kluczowe różnice i wybrać właściwe podejście do twojego przypadku użycia.

Tło: Dwie ścieżki integracji GitHub

Aktualna dokumentacja Logto przeprowadza cię przez konfigurację aplikacji GitHub OAuth w celu logowania społecznościowego. To prostsza, bardziej bezpośrednia opcja, która świetnie sprawdza się przy podstawowych potrzebach uwierzytelniania. Jednak GitHub Apps to nowoczesne, rekomendowane przez GitHub rozwiązanie, oferujące ulepszone funkcje bezpieczeństwa i bardziej szczegółową kontrolę.

Możesz to zobrazować tak: aplikacje OAuth są jak oddanie komuś klucza master do domu — po autoryzacji otrzymują szeroki dostęp. GitHub Apps są natomiast jak system inteligentnego zamka z indywidualnymi kodami dostępu do poszczególnych pomieszczeń — użytkownicy mogą przydzielać precyzyjne uprawnienia dokładnie do tego, czego potrzebuje twoja aplikacja.

Kluczowe różnice w skrócie

Uprawnienia: ogólne vs. szczegółowe

  • Aplikacje OAuth używają szerokich zakresów — żądanie repo daje pełną kontrolę nad repozytorium.
  • GitHub Apps używają szczegółowych uprawnień — możesz poprosić tylko o "Zadania: odczyt" bez dostępu do kodu. Użytkownicy mogą również wybrać konkretne repozytoria podczas instalacji, a nie przydzielać dostęp globalny.

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

  • Aplikacje OAuth wydają tokeny, które nigdy nie wygasają (dopóki nie zostaną ręcznie cofnięte), bez mechanizmu odświeżania.
  • GitHub Apps używają tokenów o krótkim czasie życia (1 godzina) z automatycznym odświeżaniem — znacznie bezpieczniejsze dla długotrwałych aplikacji.

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

  • Aplikacje OAuth zawsze działają jako autoryzujący użytkownik (np. @octocat) i dzielą jego limit zapytań (5 000 żądań na godzinę).
  • GitHub Apps mogą działać niezależnie jako własny bot (np. @my-app[bot]) i korzystać ze skalowalnych limitów zapytań, które rosną wraz z użyciem — idealne dla automatyzacji.

Kontrola dostępu: wszystko albo nic vs. selektywna

  • Aplikacje OAuth 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 większą przejrzystość i kontrolę.

Trwałość: zależne od użytkownika vs. niezależne

  • Aplikacje OAuth są powiązane z autoryzującym użytkownikiem — jeśli ten deweloper straci dostęp lub opuści organizację, aplikacja przestaje działać.
  • GitHub Apps kontynuują działanie nawet jeśli deweloper, który zainstalował aplikację, opuści twoją organizację — gwarantując nieprzerwane działanie automatyzacji i integracji.

Którą opcję wybrać?

Oba rozwiązania: GitHub Apps i OAuth Apps płynnie współpracują z konektorem społecznościowym Logto. Logto Secret Vault bezpiecznie przechowuje tokeny z dowolnej integracji, ale każde z nich zapewnia inne doświadczenie:

Podstawowe logowanie społecznościowe z aplikacjami OAuth

Jeśli potrzebujesz jedynie uwierzytelnienia użytkowników (Zaloguj się przez GitHub) i nie wywołujesz później API GitHub, droga przez aplikacje OAuth jest najszybsza:

  • Prosta konfiguracja: użytkownicy autoryzują twoją aplikację OAuth i logują się przez GitHub.
  • Tokeny są długowieczne (brak odświeżania): Logto może przechowywać token dostępu w Secret Vault, ale nie ma mechanizmu odświeżania – tokeny pozostają ważne, dopóki nie zostaną cofnięte.
  • Najlepsze, gdy potrzebujesz jedynie tożsamości użytkownika (e-mail, imię, avatar) i nie wykonujesz automatycznych operacji na API.

Dlaczego wybrać tę opcję: najszybsza implementacja dla prototypów lub aplikacji, które wymagają tylko logowania i okazjonalnej synchronizacji profilu.

Rozszerzona integracja z GitHub Apps

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

  • Szczegółowe uprawnienia i wybór repozytoriów przy instalacji ograniczają dostęp do minimum i ułatwiają audyt.
  • Tokeny są krótkotrwałe (zwykle 1 godzina), a GitHub Apps mogą wydawać tokeny odświeżające; jeśli są aktywne, Logto przechowuje oba typy tokenów w Secret Vault i obsługuje ich rotację, dzięki czemu twój backend działa bez ponownego logowania użytkownika.
  • Tożsamość aplikacji (bot) poprawia atrybucję, a skalowalne limity zapytań czynią integrację niezawodną nawet przy dużej automatyzacji.

Najlepsze dla:

  • Platform SaaS zarządzających repozytoriami GitHub w imieniu użytkowników
  • Agentów AI, które wchodzą w interakcję z kodem, zadaniami lub 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 aplikacji OAuth, z kilkoma kluczowymi różnicami. Migracja z OAuth App do GitHub App wymaga minimalnego wysiłku.

Tworzenie GitHub App

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

  2. Kliknij "New GitHub App"

  3. Skonfiguruj:

    • Nazwa GitHub App: unikalny identyfikator twojej aplikacji
    • Homepage URL: witryna twojej aplikacji
    • Callback URL: adres zwrotny konektora Logto (taki sam jak w OAuth App)
    • Żądaj autoryzacji użytkownika (OAuth) podczas instalacji: włącz tę opcję
    • Webhook: opcjonalnie, w zależności od potrzeb
    • Uprawnienia: wybierz szczegółowe uprawnienia (np. "Zadania: odczyt")
    • Uprawnienia użytkownika: dodaj uprawnienia konta, jeśli działasz w imieniu użytkownika
  4. Wygeneruj client secret (jak w OAuth App)

integrate-github-apps.png

Konfiguracja w Logto

Konfiguracja konektora Logto jest niemal identyczna:

  1. Wprowadź Client ID z twojej GitHub App
  2. Dodaj Client secret
  3. Włącz "Przechowuj tokeny dla trwałego dostępu do API" jeśli chcesz wywoływać API GitHub
  4. Kluczowa różnica - Scopes:
    • W przeciwieństwie do aplikacji OAuth (gdzie zakresy wpisujesz w Logto), uprawnienia GitHub App wybierasz w ustawieniach samej aplikacji GitHub.
    • Pozostaw pole scope puste w Logto
  5. Żądaj tokenu odświeżającego (opcjonalnie)
    • Dodaj offline_access do pola scope w Logto, by włączyć tokeny odświeżające
    • GitHub automatycznie wydaje token odświeżający, a Logto obsługuje rotację i przechowuje oba tokeny w Secret Vault
    • Uwaga: aplikacje OAuth nie obsługują tokenów odświeżających — ich tokeny dostępowe nigdy nie wygasają, więc offline_access nie ma zastosowania. To różni się od integracji przez GitHub Apps.

integrate-github-connector-in-logto.png

Podsumowanie

Chociaż aplikacje OAuth nadal są dobrą opcją dla podstawowego uwierzytelniania, GitHub Apps reprezentują przyszłość integracji z GitHub. Oferują lepsze bezpieczeństwo dzięki wygasaniu tokenów, bardziej precyzyjne modele uprawnień i większą kontrolę użytkownika nad dostępem.

Dla użytkowników Logto obie opcje współpracują z konektorem społecznościowym. Wybór zależy od twoich potrzeb:

  • Zacznij od prostych aplikacji OAuth gdy potrzebujesz tylko uwierzytelnienia
  • Przejdź na GitHub Apps gdy potrzebujesz dostępu do API, automatyzacji lub zwiększonego bezpieczeństwa

I pamiętaj — Secret Vault Logto i automatyczne odświeżanie tokenów sprawiają, że zarządzanie tokenami GitHub App jest równie proste jak w aplikacjach OAuth, bez kompromisów na rzecz bezpieczeństwa. Niezależnie czy tworzysz AI asystenta programistycznego, platformę do zarządzania projektami czy narzędzie wspierające produktywność deweloperów, masz teraz wiedzę by wybrać właściwą integrację GitHub dla swojej aplikacji Logto.

Gotowy, by zacząć? Sprawdź githubowy konektor Logto i rozpocznij integrację logowania przez GitHub już dziś.

Dodatkowe zasoby