Autorizzazione utente
Dopo che un utente esegue correttamente l'autenticazione tramite il provider di identità (IdP) usando l'accesso Single Sign-On (SSO) SAML, il passaggio critico successivo è l'autorizzazione, concedendo strumenti come token di accesso personale (PAT), chiavi SSH o app OAuth con la possibilità di accedere alle risorse dell'organizzazione.
Automazione dell'autorizzazione utente con SAML SSO e SCIM
L'accesso SSO tramite il linguaggio di marcatura per le asserzioni di sicurezza (SAML) consente ai proprietari dell'impresa e dell'organizzazione di controllare l'accesso alle risorse di GitHub, ad esempio repository, problemi e pull request. L'integrazione di SCIM (System for Cross-domain Identity Management) migliora il controllo di accesso automatizzando il provisioning e il deprovisioning degli utenti.
Con SCIM, ai nuovi dipendenti aggiunti all'IdP viene concesso automaticamente l'accesso a GitHub, mentre gli utenti in partenza vengono rimossi, riducendo i passaggi manuali e migliorando la sicurezza.
Nota
Senza SCIM, SAML SSO da solo non supporta la disabilitazione automatica dei membri dell'organizzazione.
SCIM revoca anche i token non aggiornati al termine di una sessione, riducendo i rischi per la sicurezza. Senza SCIM, è necessario revocare i token non aggiornati manualmente.
Gestione di chiavi SSH e PAT con SAML SSO
SAML SSO e SCIM interagiscono per riflettere le modifiche all'identità in GitHub. Per sostenere questa coesione:
-
NameIDeuserNamedevono corrispondere tra il client SAML IdP e SCIM. - Raggruppare le modifiche apportate agli aggiornamenti SCIM del trigger IdP in GitHub.
Gli utenti che accedono alle API o Git devono usare una chiave PAT o SSH autorizzata. Questi metodi sono controllabili e collegati in modo sicuro a SAML SSO.
Per semplificare onboarding, configura gli utenti usando: https://github.com/orgs/ORGANIZATION/sso/sign_up. Visualizzare questo collegamento nel dashboard IdP.
Quando gli utenti eseguono la prima autenticazione, GitHub collega il proprio account e i dati SCIM all'organizzazione. Gli amministratori possono successivamente controllare o revocare sessioni e credenziali per automatizzare l'offboarding.
Integrazione SCIM con GitHub
SCIM semplifica la gestione delle identità in GitHub Enterprise Cloud supportando sia le integrazioni native che le configurazioni personalizzate.
Provider SCIM supportati
GitHub supporta in modo nativo:
- Okta
- Microsoft Entra ID
- OneLogin
- Ping Identity
- Google Workspace
Queste integrazioni garantiscono una configurazione e una compatibilità affidabili.
Integrazioni SCIM personalizzate
Se il tuo IdP non è supportato in modo nativo, usa l'API SCIM di GitHub per creare integrazioni personalizzate.
Panoramica dell'API SCIM
L'API SCIM 2.0 consente di:
- Creare, aggiornare ed eliminare utenti
- Gestire i gruppi
Richiesta di esempio per effettuare il provisioning di un utente
POST /scim/v2/Users
Content-Type: application/json
{
"userName": "jdoe",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [
{
"value": "jdoe@example.com",
"primary": true
}
]
}
GitHub elabora questa richiesta e aggiunge l'utente all'organizzazione.
Come iniziare
Per i fornitori supportati
- Accedere alla console di amministrazione di IdP.
- Abilitare il provisioning SCIM.
- Specificare l'URL di base SCIM di GitHub e il token di portatore.
Per gli ID personalizzati
- Usare l'API REST SCIM di GitHub.
- Eseguire l'autenticazione con un token di accesso personale.
- Testare l'integrazione con richieste di esempio.
Vantaggi principali dell'integrazione SCIM
- Provisioning: Creare automaticamente gli account.
- Aggiornamenti: Sincronizzare ruoli e reparti.
- Deprovisioning: Rimuovere immediatamente l'accesso al momento dell'uscita dell'utente.
SCIM e gestione manuale degli utenti
| Aspetto | SCIM-Based Gestione | Gestione manuale |
|---|---|---|
| Automazione | Automatizza il provisioning e il deprovisioning | Intervento manuale richiesto |
| Consistenza | Dati utente standardizzati tra sistemi | Rischio di incoerenze |
| Sicurezza | Disattivazione tempestiva dell'accesso | Revoche ritardate o mancate |
| Scalabilità | Scalabilità con basi utente di grandi dimensioni | Ingombrante su larga scala |
| Conformità | Consente di soddisfare i requisiti di politiche e audit | Più difficile tenere traccia e segnalare |
Collegamento dell'IdP a GitHub
È possibile usare un provider di identità supportato oppure portare il proprio IdP SAML 2.0.
IdP supportati (percorso pavimentato)
- Okta
- Microsoft Entra ID
- Google Workspace
Alcuni vantaggi dell'uso degli IDP supportati sono:
- Integrazione senza problemi
- supportato da GitHub
- Riduzione delle operazioni di configurazione
Porta il tuo IdP
Bring Your Own IdP richiede il supporto SAML 2.0. Ha il vantaggio di consentire la massima flessibilità.
Passaggi di integrazione
| TIPO | Fasi |
|---|---|
| Percorso pavimentato: | 1. Passare alle impostazioni di sicurezza aziendali. 2. Selezionare il provider di identità. 3. Seguire le istruzioni di installazione. |
| IdP personalizzato: | 1. Passare alle impostazioni di sicurezza. 2. Scegliere il IdP personalizzato. 3. Immettere i metadati SAML. 4. Convalidare la connessione. |
Confronto tra percorsi di integrazione IdP
| Caratteristica / Funzionalità | Percorso pavimentato | Porta il tuo IdP |
|---|---|---|
| Processo di installazione | ✅ Configurazione guidata | ⚠️ Configurazione manuale |
| Flessibilità | ⚠️ Limitato agli IDP elencati | ✅ Qualsiasi IDP SAML 2.0 |
| Manutenzione | ✅ gestito da GitHub | ⚠️ Gestito dall'organizzazione |
| Personalizzazione | ⚠️ Minimo | ✅ Completamente personalizzabile |
| Supporto e aggiornamenti | ✅ supportato da GitHub | ⚠️ Autogestito |
Gestione delle identità e dell'accesso
Configurazione dell'accesso Single Sign-On SAML
- Configurare l'URL SSO SAML.
- Fornire il certificato pubblico.
- Aggiungere metadati IdP.
Gestione delle credenziali
Le chiavi CONT e SSH devono essere autorizzate in modo esplicito e collegate alle identità IdP per accedere in modo sicuro alle risorse dell'organizzazione.
Controllo delle sessioni SAML
- Visualizzare le sessioni attive nelle impostazioni.
- Revocare le singole sessioni in base alle esigenze.
Considerazioni sull'appartenenza a GitHub
| TIPO | Considerazione |
|---|---|
| Appartenenza all'istanza di GitHub | - Accesso ai repository pubblici - Creare progetti personali - Visibilità del profilo pubblico |
| Appartenenza all'organizzazione | - Accesso interno basato sui ruoli - Profilo visibile agli amministratori dell'organizzazione - Potrebbe influire sulla fatturazione |
| Appartenenze a più organizzazioni | - Ruoli diversi tra organizzazioni - Accesso alle risorse più ampio - Autorizzazioni e fatturazione complesse - Richiede una governance rigorosa |