Jak działa uwierzytelnianie w usłudze GitHub?

Ukończone

W poprzedniej lekcji przedstawiono typowe zadania administracyjne na poziomie zespołu, organizacji i przedsiębiorstwa. W tej lekcji zapoznasz się z jednym z najczęstszych zadań administracyjnych wykonywanych przez właścicieli organizacji, które konfigurują i kontrolują uwierzytelnianie użytkowników w usłudze GitHub.

Opcje uwierzytelniania w usłudze GitHub

Istnieje kilka opcji uwierzytelniania za pomocą usługi GitHub:

Nazwa użytkownika i hasło

Administratorzy mogą zezwolić użytkownikom na dalsze używanie domyślnej metody uwierzytelniania nazwy użytkownika i hasła, czasami nazywanej "podstawowym" schematem uwierzytelniania HTTP.

Uwaga / Notatka

Usługa GitHub nie obsługuje już uwierzytelniania haseł na potrzeby operacji usługi Git ani użycia interfejsu API. Zdecydowanie zalecamy użycie jednej (lub kilku) innych opcji wymienionych w tej lekcji.

Osobiste tokeny dostępu

Zrzut ekranu przedstawiający ekran osobistego tokenu dostępu.

Osobiste tokeny dostępu (PAT) są alternatywą dla używania haseł do uwierzytelniania w usłudze GitHub w przypadku korzystania z interfejsu API usługi GitHub lub wiersza polecenia. Użytkownicy generują token za pośrednictwem opcji ustawień usługi GitHub i krawat uprawnienia tokenu do repozytorium lub organizacji. Gdy użytkownicy wchodzą w interakcję z usługą GitHub przy użyciu narzędzia wiersza polecenia git, mogą wprowadzić informacje o tokenie po wyświetleniu monitu o podanie nazwy użytkownika i hasła.

Klucze SSH

Alternatywą dla używania osobistych tokenów dostępu użytkownicy mogą łączyć się i uwierzytelniać z serwerami zdalnymi i usługami za pośrednictwem protokołu SSH za pomocą kluczy SSH. Klucze SSH eliminują potrzebę podania nazwy użytkownika i osobistego tokenu dostępu dla każdej interakcji.

Podczas konfigurowania protokołu SSH użytkownicy generują klucz SSH, dodaj go do agenta ssh-agenta, a następnie dodają klucz do konta usługi GitHub. Dodanie klucza SSH do agenta ssh zapewnia, że klucz SSH ma hasło jako dodatkową warstwę zabezpieczeń. Użytkownicy mogą skonfigurować lokalną kopię narzędzia Git, aby automatycznie podać hasło, lub podać je ręcznie za każdym razem, gdy używają narzędzia wiersza polecenia git do interakcji z usługą GitHub.

Możesz nawet używać kluczy SSH z repozytorium należącym do organizacji korzystającej z logowania jednokrotnego SAML. Jeśli organizacja udostępnia certyfikaty SSH, użytkownicy mogą również używać go do uzyskiwania dostępu do repozytoriów organizacji bez dodawania certyfikatu do konta usługi GitHub.

Wdrażanie kluczy

Klucze wdrażania to inny typ klucza SSH w usłudze GitHub, który udziela użytkownikowi dostępu do pojedynczego repozytorium. Usługa GitHub dołącza publiczną część klucza bezpośrednio do repozytorium zamiast osobistego konta użytkownika, a część prywatna klucza pozostaje na serwerze użytkownika. Klucze wdrażania są domyślnie tylko do odczytu, ale można nadać im dostęp do zapisu podczas dodawania ich do repozytorium.

Aby skonfigurować ustawienia rozwidlenia:

  1. Przejdź do obszaru Ustawienia repozytorium.
  2. Na lewym pasku bocznym w obszarze Zabezpieczenia kliknij pozycję Wdróż klucze.
  3. Znajdź opcję Dodaj klucz wdrażania , aby utworzyć nowy klucz.

Zrzut ekranu przedstawiający opcję Dodaj klucz wdrażania w opcji Wdróż klucze.

Dodane opcje zabezpieczeń usługi GitHub

Usługa GitHub oferuje szereg opcji zabezpieczeń, które ułatwiają ochronę kont i zasobów organizacji.

Uwierzytelnianie dwuskładnikowe

Zrzut ekranu przedstawiający ekran uwierzytelniania dwuskładnikowego.

Uwierzytelnianie dwuskładnikowe (2FA), nazywane czasem uwierzytelnianiem wieloskładnikowym (MFA), dodaje dodatkową warstwę ochrony do konta usługi GitHub. W przypadku uwierzytelniania 2FA użytkownicy logują się przy użyciu nazwy użytkownika i hasła, a następnie podaj drugą formę uwierzytelniania.

Usługa GitHub obsługuje kilka opcji drugiego czynnika:

  • Aplikacje Authenticator (takie jak Microsoft Authenticator, Google Authenticator lub Authy), które generują jednorazowe kody oparte na czasie.
  • Sprzętowe klucze zabezpieczeń (takie jak YubiKey lub Titan Security Key), które obsługują standard FIDO2/WebAuthn.
  • Hasła do uwierzytelniania bez hasła, odpornego na wyłudzanie informacji.
  • Kody oparte na wiadomościACH SMS, które są obsługiwane, ale uważane za mniej bezpieczne niż inne opcje i nie są zalecane jako metoda podstawowa.

Wymuszanie uwierzytelniania 2FA:

  • W przypadku organizacji w usłudze GitHub Team i GitHub Enterprise Cloud właściciele organizacji mogą wymagać członków, zewnętrznych współpracowników i menedżerów rozliczeń, aby umożliwić uwierzytelnianie 2FA dla swoich kont osobistych.
  • Użytkownicy zarządzani w przedsiębiorstwie (EMU) i GitHub Enterprise Server (GHE.com): Administratorzy mogą wymagać 2FA tylko dla kont zarządzanych przez przedsiębiorstwo, ale nie mogą wymuszać uwierzytelniania 2FA na osobistych kontach GitHub.com użytkowników.

Wymuszanie uwierzytelniania 2FA pomaga organizacjom chronić przed nieautoryzowanym dostępem i zwiększa bezpieczeństwo repozytoriów i poufnych danych.

Logowanie jednokrotne SAML

Jeśli centralnie zarządzasz tożsamościami użytkowników przy użyciu dostawcy tożsamości (IdP), możesz skonfigurować logowanie jednokrotne SAML w celu ochrony zasobów organizacji w usłudze GitHub. Logowanie jednokrotne SAML umożliwia właścicielom organizacji i przedsiębiorstw kontrolowanie i zabezpieczanie dostępu do repozytoriów, problemów, żądań ściągnięcia i nie tylko. Podczas uzyskiwania dostępu do zasobów usługa GitHub przekierowuje użytkowników do uwierzytelniania za pomocą dostawcy tożsamości organizacji.

Usługa GitHub obsługuje wszystkich dostawców tożsamości, którzy implementują standard SAML 2.0 z oficjalną obsługą kilku popularnych dostawców, w tym:

  • Active Directory Federation Services (AD FS).
  • Microsoft Entra ID.
  • Okta.
  • OneLogin.
  • PingOne.

LDAP (GitHub Enterprise Server)

LDAP (Lightweight Directory Access Protocol) to powszechnie używany protokół umożliwiający uzyskiwanie dostępu do informacji o katalogu użytkowników i zarządzanie nimi. Na serwerze GitHub Enterprise Server integracja LDAP umożliwia uwierzytelnianie użytkowników w istniejącym katalogu firmy i centralne zarządzanie dostępem do repozytorium.

Serwer GitHub Enterprise Server integruje się z głównymi usługami LDAP, takimi jak:

Usługę GitHub Enterprise Server można zintegrować z popularnymi usługami LDAP, takimi jak:

  • Active Directory.
  • Oracle Directory Server Enterprise Edition.
  • OpenLDAP.
  • Otwórz katalog.