Come funziona l'autenticazione di GitHub?

Completato

Nell'unità precedente sono state illustrate le tipiche attività di amministrazione a livello di team, organizzazione e azienda. In questa unità si esaminerà una delle attività amministrative più comuni eseguite dai proprietari dell'organizzazione, che configura e controlla l'autenticazione degli utenti in GitHub.

Opzioni di autenticazione di GitHub

Sono disponibili diverse opzioni per l'autenticazione con GitHub:

Nome utente e password

Gli amministratori possono consentire agli utenti di continuare a usare il metodo predefinito di autenticazione del nome utente e della password, noto anche come schema di autenticazione HTTP di base.

Annotazioni

GitHub non supporta più l'autenticazione password per le operazioni Git o l'utilizzo delle API. È consigliabile usare una o più delle altre opzioni elencate in questa unità.

Token di accesso personali

Screenshot della schermata dei token di accesso personali.

I token di accesso personali rappresentano un'alternativa all'uso delle password per l'autenticazione in GitHub quando si usa l'API GitHub o la riga di comando. Gli utenti generano un token usando l'opzione delle impostazioni di GitHub e associano le autorizzazioni del token a un repository o un'organizzazione. Quando gli utenti interagiscono con GitHub usando lo strumento da riga di comando git, possono immettere le informazioni del token quando vengono richiesti il nome utente e la password.

Chiavi SSH

In alternativa all'uso dei token di accesso personali, gli utenti possono connettersi ed eseguire l'autenticazione a server e servizi remoti usando SSH con l'ausilio delle chiavi SSH. Le chiavi SSH eliminano la necessità per gli utenti di specificare il proprio nome utente e il token di accesso personale per ogni interazione.

Quando si configura SSH, gli utenti generano una chiave SSH, la aggiungono all'agente SSH e quindi aggiungono la chiave all'account GitHub. L'aggiunta della chiave SSH all'agente SSH garantisce che la chiave SSH offra una passphrase come ulteriore livello di sicurezza. Gli utenti possono configurare la copia locale di Git per indicare automaticamente la passphrase oppure possono specificarla manualmente ogni volta che usano lo strumento da riga di comando Git per interagire con GitHub.

È anche possibile usare le chiavi SSH con un repository di proprietà di un'organizzazione che usa il Single Sign-On (SSO) SAML. Se l'organizzazione fornisce certificati SSH, gli utenti possono usarli anche per accedere ai repository dell'organizzazione senza aggiungere il certificato all'account GitHub.

Deploy keys (Chiavi di distribuzione)

Le chiavi di distribuzione sono un altro tipo di chiave SSH in GitHub, che concede a un utente l'accesso a un singolo repository. GitHub collega la parte pubblica della chiave direttamente al repository invece che a un account utente personale e la parte privata della chiave rimane nel server dell'utente. Per impostazione predefinita, le chiavi di distribuzione sono di sola lettura, ma è possibile concedere loro l'accesso in scrittura quando le si aggiunge a un repository.

Per configurare le impostazioni fork:

  1. Passare alle impostazioni del repository.
  2. Nella barra laterale sinistra, in Sicurezza, fare clic su Distribuisci chiavi.
  3. Individuare l'opzione Aggiungi chiave di distribuzione per creare una nuova chiave.

Screenshot che mostra l'opzione Aggiungi chiave di distribuzione nell'opzione Distribuisci chiavi.

Opzioni di sicurezza aggiuntive di GitHub

GitHub offre una gamma di opzioni di sicurezza per proteggere gli account e le risorse dell'organizzazione.

Autenticazione a due fattori

Screenshot della schermata dell'autenticazione a due fattori.

L'autenticazione a due fattori (2FA), talvolta nota come autenticazione a più fattori (MFA), aggiunge un ulteriore livello di protezione all'account GitHub. Con 2FA, gli utenti accedono con il nome utente e la password e quindi forniscono una seconda forma di autenticazione.

GitHub supporta diverse opzioni di secondo fattore:

  • App authenticator (ad esempio Microsoft Authenticator, Google Authenticator o Authy) che generano codici monouso basati sul tempo.
  • Chiavi di sicurezza hardware (ad esempio YubiKey o Titan Security Key) che supportano FIDO2/WebAuthn.
  • Passkey per l'autenticazione senza password e resistente al phishing.
  • Codici basati su SMS, supportati ma considerati meno sicuri rispetto ad altre opzioni e non sono consigliati come metodo primario.

Applicazione 2FA:

  • Per le organizzazioni in GitHub Team e GitHub Enterprise Cloud, i proprietari dell'organizzazione possono richiedere membri, collaboratori esterni e responsabili della fatturazione per abilitare 2FA per gli account personali.
  • Enterprise Managed Users (EMU) e GitHub Enterprise Server (GHE.com): gli amministratori possono richiedere 2FA solo per gli account gestiti dall'organizzazione, ma non possono applicare 2FA agli account GitHub.com personali degli utenti.

L'applicazione di 2FA consente alle organizzazioni di proteggere le organizzazioni dall'accesso non autorizzato e rafforza la sicurezza dei repository e dei dati sensibili.

SAML SSO

Se si gestiscono centralmente le identità degli utenti con un provider di identità (IdP), è possibile configurare l'accesso Single Sign-On (SSO) SAML per proteggere le risorse dell'organizzazione in GitHub. SAML SSO consente ai proprietari dell'organizzazione e dell'organizzazione di controllare e proteggere l'accesso a repository, problemi, richieste pull e altro ancora. Quando si accede alle risorse, GitHub reindirizza gli utenti per l'autenticazione con il provider di identità dell'organizzazione.

GitHub supporta tutti i provider di identità che implementano lo standard SAML 2.0, con supporto ufficiale per diversi provider più diffusi, tra cui:

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

LDAP (GitHub Enterprise Server)

LDAP (Lightweight Directory Access Protocol) è un protocollo ampiamente usato per accedere e gestire le informazioni sulla directory utente. In GitHub Enterprise Server, l'integrazione LDAP consente di autenticare gli utenti con la directory aziendale esistente e di gestire l'accesso al repository in modo centralizzato.

GitHub Enterprise Server si integra con i principali servizi LDAP, ad esempio:

GitHub Enterprise Server si integra con i servizi LDAP più diffusi, ad esempio:

  • Active Directory.
  • Oracle Directory Server Enterprise Edition.
  • OpenLDAP.
  • Aprire la directory.