GitHub 身分驗證如何運作?

已完成

在上一個單元中,您已了解小組、組織和企業層級的一般管理工作。 在本單元中,您將探索組織擁有者執行的最常見管理工作之一,即設定和控制使用者對 GitHub 的驗證。

GitHub 驗證選項

有幾個選項可向 GitHub 進行驗證:

使用者名稱與密碼

系統管理員可允許使用者繼續使用預設使用者名稱及密碼驗證方法,有時也稱為「基本」HTTP 驗證配置。

備註

GitHub 不再支援 Git 作業或 API 使用的密碼驗證。 我們強烈建議使用本單元所列其他選項中的一個 (或多個) 選項。

個人存取權杖

個人存取權杖畫面的螢幕擷取畫面。

使用 GitHub API 或命令列時,個人存取權杖 (PAT) 可用來替代密碼向 GitHub 進行驗證。 使用者可透過 GitHub 的 [設定] 選項產生權杖,將權杖權限與存放庫或組織繫結。 當使用者使用 git 命令列工具與 GitHub 互動時,其可以在要求使用者名稱和密碼時輸入權杖資訊。

SSH 金鑰

使用者可藉由 SSH 金鑰的協助,透過 SSH 連線到遠端伺服器和服務並進行驗證,以此替代使用個人存取權杖。 SSH 金鑰讓使用者不用針對每次互動都必須提供使用者名稱和個人存取權杖。

設定 SSH 時,使用者會產生 SSH 金鑰,並將此金鑰新增至 ssh-agent,然後將金鑰新增到其 GitHub 帳戶。 將 SSH 金鑰新增至 ssh-agent 能確保 SSH 金鑰具有作為多一層安全性的複雜密碼。 使用者可設定 git 的本機複本自動提供複雜密碼,或在每次使用 git 命令列工具與 GitHub 互動時手動提供複雜密碼。

您甚至可以對使用 SAML 單一登入 (SSO) 的組織所擁有的存放庫使用 SSH 金鑰。 如果組織提供 SSH 憑證,使用者也可以使用該憑證來存取組織的存放庫,而不需要將憑證新增至其 GitHub 帳戶。

Deploy keys (部署金鑰)

部署金鑰是 GitHub 中的另一種 SSH 金鑰,可授與使用者對單一存放庫的存取權。 GitHub 會將金鑰的公開部分直接附加至存放庫,而不是個人使用者帳戶,而金鑰的私人部分則會保留在使用者的伺服器上。 部署金鑰根據預設為唯讀,但您可以在將其新增至存放庫時,為其提供寫入存取。

若要設定分支設定:

  1. 前往存放庫的 設定
  2. 在左側邊欄的 [安全性] 底下,按一下 [部署金鑰]。
  3. 找到 [新增部署金鑰 ] 選項以建立新金鑰。

螢幕擷取畫面顯示 [在部署金鑰] 選項上新增部署金鑰。

GitHub 新增的安全性選項

GitHub 提供一系列安全性選項,以協助保護帳戶和組織資源。

雙重要素驗證

雙重要素驗證畫面的螢幕擷取畫面。

雙因素身份驗證 (2FA),有時稱為多因素身份驗證 (MFA),為您的 GitHub 帳戶添加了額外的保護層。 使用 2FA,使用者使用其使用者名稱和密碼登入,然後提供第二種形式的驗證。

GitHub 支援數個第二因素選項:

  • 產生以時間為基礎的一次性代碼的驗證器應用程式 (例如 Microsoft Authenticator、Google Authenticator 或 Authy)。
  • 支援 FIDO2/WebAuthn 的硬體安全金鑰 (例如 YubiKey 或 Titan 安全金鑰)。
  • 用於無密碼、防網路釣魚身份驗證的通行金鑰。
  • SMS 型代碼,受支援,但被認為不如其他選項安全,不建議作為主要方法。

2FA 執行:

  • 對於 GitHub Team 和 GitHub Enterprise Cloud 上的組織,組織擁有者可以要求成員、外部共同作業者和計費管理員為其個人帳戶啟用 2FA。
  • Enterprise Managed Users (EMU) 和 GitHub Enterprise Server (GHE.com):管理員只能對 Enterprise Managed 帳戶要求 2FA,但無法對使用者的個人 GitHub.com 帳戶強制執行 2FA。

強制執行 2FA 有助於保護組織免受未經授權的訪問,並增強儲存庫和敏感資料的安全性。

SAML 單一登入

如果您以身分識別提供者 (IdP) 集中管理使用者的身分識別,您可以設定 SAML 單一登錄 (SSO)來保護貴組織在 GitHub 上的資源。 SAML SSO 可讓組織和企業擁有者控制和保護對存放庫、問題、提取要求等的存取。 存取資源時,GitHub 會重新導向使用者,以向組織的 IdP 進行驗證。

GitHub 支援所有實作 SAML 2.0 標準的身分識別提供者,並正式支援數個熱門提供者,包括:

  • Active Directory 同盟服務 (AD FS)。
  • Microsoft Entra ID。
  • Okta。
  • OneLogin。
  • PingOne。

LDAP (GitHub 企業伺服器)

LDAP(輕量級目錄存取協定)是一種廣泛使用的協定,用於存取和管理使用者目錄資訊。 在 GitHub Enterprise Server 上,LDAP 整合可讓您根據現有的公司目錄驗證使用者,並集中管理存放庫存取。

GitHub Enterprise Server 與主要 LDAP 服務整合,例如:

GitHub Enterprise Server 整合的熱門 LDAP 服務包括:

  • Active Directory。
  • Oracle Directory Server Enterprise Edition。
  • OpenLDAP。
  • Open Directory。