Czym właściwie jest autoryzacja OAuth
Gdy klikasz „Autoryzuj” w aplikacji zewnętrznej, GitHub zapisuje uprawnienie: aplikacja może teraz działać w Twoim imieniu w ramach zatwierdzonych uprawnień. To uprawnienie nie jest sesją przeglądarki, nie jest kluczem SSH ani zainstalowaną aplikacją GitHub z własnymi ustawieniami instalacji. Każde z nich unieważnia się lub usuwa w innym miejscu, więc pierwszym krokiem jest ustalenie, z jakim rodzajem dostępu faktycznie masz do czynienia.
| Co widzisz | Co to jest | Gdzie jest zarządzane |
|---|---|---|
| Aplikacja zewnętrzna wymieniona z zatwierdzonymi zakresami | Autoryzacja OAuth | Ustawienia → Aplikacje → Autoryzowane aplikacje OAuth |
| Para kluczy dodana do Git przez SSH | Klucz SSH | Ustawienia → Klucze SSH i GPG |
| Jesteś zalogowany w tej przeglądarce | Sesja logowania | Wylogowanie lub strona sesji |
| Aplikacja zainstalowana w repozytorium lub organizacji | Instalacja aplikacji GitHub | Ustawienia instalacji aplikacji lub organizacji |
Jeśli wpis, na który patrzysz, nie jest autoryzacją OAuth, unieważnienie go z listy OAuth nie rozwiąże problemu.
Dlaczego warto przejrzeć przed unieważnieniem
Stara autoryzacja może nadal robić coś, na czym polegasz, na przykład narzędzie do wdrażania, wtyczka edytora lub integracja CI. Unieważnienie odcina dostęp tej aplikacji przez to uprawnienie, co jest celem, ale może też zepsuć przepływ pracy, który nadal od niego zależy. Przed działaniem sprawdź nazwę aplikacji, wymienione uprawnienia i to, kiedy ostatnio jej używałeś.
GitHub zaleca przeglądanie autoryzowanych aplikacji, w tym aplikacji z dostępem do prywatnych repozytoriów. Źródło
Jeśli nie rozpoznajesz aplikacji lub dostęp, który posiada, jest szerszy niż zadanie, które wykonuje, to jest przypadek do unieważnienia. Jeśli ją rozpoznajesz i nadal używasz, zastanów się, czy obecne zakresy są nadal odpowiednie, zanim podejmiesz decyzję.
Lista kontrolna przed i po
Użyj tego jako krótkiego zapisu, aby móc stwierdzić, co się zmieniło, i w razie potrzeby cofnąć błąd.
Przed unieważnieniem
- Zanotuj nazwę aplikacji i wyświetlane dla niej uprawnienia, aby później rozpoznać ten sam wpis.
- Sprawdź, czy coś, czego obecnie używasz, zależy od tej aplikacji: kompilacja, wdrożenie, logowanie w edytorze, zadanie zaplanowane.
- Upewnij się, że patrzysz na Autoryzowane aplikacje OAuth, a nie na klucze SSH, sesje lub zainstalowane aplikacje.
- Zdecyduj, czy chcesz unieważnić jedną konkretną autoryzację, czy wszystkie.
Po unieważnieniu
- Odśwież stronę Autoryzowane aplikacje OAuth i potwierdź, że wpis zniknął.
- Uruchom raz przepływ pracy, który korzystał z aplikacji, i zanotuj, czy teraz prosi o ponowną autoryzację. Ten monit jest oczekiwanym znakiem, że uprawnienie zostało usunięte.
- Jeśli przepływ pracy się zepsuje, a nadal go potrzebujesz, autoryzuj go świadomie i przejrzyj żądane zakresy.
- Zachowaj metodę odzyskiwania konta, dopóki nie upewnisz się, że nic innego nie zależało od unieważnionego dostępu.
Jak unieważnić autoryzację
Otwórz Ustawienia konta, Aplikacje w sekcji Integracje, następnie Autoryzowane aplikacje OAuth, aby przejrzeć dostęp. Źródło
Z listy otwórz menu dla konkretnej aplikacji, którą chcesz usunąć.
Nierozpoznaną lub przestarzałą autoryzację można unieważnić z menu aplikacji; strona oferuje również opcję Unieważnij wszystko. Źródło
Unieważnij pojedynczy wpis, gdy chcesz usunąć tylko jedną aplikację. Opcja Unieważnij wszystko służy do sytuacji, gdy przejrzałeś listę i chcesz wyczyścić wszystkie autoryzacje; wpłynie to na każdą aplikację na tej stronie, nie tylko na tę, na którą patrzyłeś.
Granice błędów, o których warto pamiętać
- Unieważnienie to nie usunięcie. Usunięcie uprawnienia zatrzymuje przyszły dostęp przez nie. Nie usuwa danych, które aplikacja już zapisała lub skopiowała poza GitHub, i nie jest gwarancją usunięcia.
- Unieważnienie to nie wylogowanie. Twoja sesja przeglądarki na GitHub jest oddzielna; unieważnienie aplikacji nie wylogowuje Cię, a wylogowanie nie unieważnia autoryzacji aplikacji.
- Klucz SSH to nie aplikacja OAuth. Jeśli dostępem, o który się martwisz, jest klucz, usuwa się go w ustawieniach kluczy SSH i GPG, a nie w Autoryzowanych aplikacjach OAuth.
- Zainstalowana aplikacja GitHub to nie ten sam wpis. Dostęp na poziomie instalacji jest zarządzany tam, gdzie aplikacja jest zainstalowana, więc sprawdź tam, jeśli aplikacja nie pojawia się na liście OAuth.
- Dopasowanie publicznej nazwy użytkownika to nie dowód. Jeśli sprawdzasz, czy nazwa użytkownika pojawia się gdzie indziej, dopasowanie na publicznym profilu to trop, a nie dowód własności. TraceSeek może wyszukać znane publiczne nazwy użytkowników w ponad 3 000 platform, ale nie może przeglądać ani unieważniać ustawień GitHub za Ciebie.
Kiedy traktować autoryzację jako podejrzaną
Nie potrzebujesz dramatycznej historii, aby działać. Praktyczne sygnały to: nie rozpoznajesz aplikacji, uprawnienia są szersze niż zadanie, które wykonuje, lub nie pamiętasz, że ją autoryzowałeś. W takich przypadkach unieważnienie konkretnego wpisu jest rozsądnym krokiem, po którym sprawdzasz, czy coś, na czym polegasz, przestaje działać. Jeśli przepływ pracy rzeczywiście się zepsuje, autoryzuj ponownie dopiero po potwierdzeniu, że aplikacja jest tą, której oczekujesz, a zakresy odpowiadają temu, czego potrzebuje.