Informazioni su sicurezza, autenticazione e autorizzazione

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure DevOps usa molti concetti di sicurezza per garantire che solo gli utenti che devono avere accesso a funzionalità, funzioni e dati hanno accesso. Gli account ottengono l'accesso ad Azure DevOps tramite l'autenticazione delle credenziali di sicurezza e l'autorizzazione dei diritti dell'account per accedere a una funzionalità o a una funzione.

Questo articolo si basa sulle informazioni fornite in Introduzione alle autorizzazioni, all'accesso e ai gruppi di sicurezza. Amministrazione istrator traggono vantaggio dalla comprensione dei tipi di account, dei metodi di autenticazione, dei metodi di autorizzazione e dei criteri usati per proteggere Azure DevOps.


Tipi di account

  • Utenti
  • Proprietario dell'organizzazione
  • Account di servizio
  • Entità servizio o identità gestite
  • Agenti di processo

Autenticazione

  • Credenziali dell'utente
  • Autenticazione di Windows
  • Autenticazione a due fattori (2FA)
  • Autenticazione della chiave SSH
  • Token di accesso personali
  • Configurazione di Oauth
  • Active Directory Authentication Library

Autorizzazione

  • Appartenenza al gruppo di sicurezza
  • Controllo degli accessi in base al ruolo
  • Livelli di accesso
  • Flag di funzionalità
  • Spazi dei nomi e autorizzazioni di sicurezza

Criteri

  • URL dell'informativa sulla privacy
  • Criteri di sicurezza e connessione delle applicazioni
  • Criteri utente
  • Repository Git e criteri di ramo


Tipi di account

  • Utenti
  • Account di servizio
  • Entità servizio o identità gestite
  • Agenti di processo

Autenticazione

  • Credenziali dell'utente
  • Autenticazione di Windows
  • Autenticazione a due fattori (2FA)
  • Autenticazione della chiave SSH
  • Token di accesso personali
  • Configurazione di Oauth
  • Active Directory Authentication Library

Autorizzazione

  • Appartenenza al gruppo di sicurezza
  • Autorizzazioni basate sui ruoli
  • Livelli di accesso
  • Flag di funzionalità
  • Spazi dei nomi e autorizzazioni di sicurezza

Criteri

  • Repository Git e criteri di ramo

Importante

Azure DevOps non supporta più l'autenticazione delle credenziali alternative dall'inizio del 2 marzo 2020. Se si usano ancora credenziali alternative, è consigliabile passare a un metodo di autenticazione più sicuro, ad esempio token di accesso personale. Altre informazioni.

Sia il servizio cloud, Azure DevOps Services e il server locale, Azure DevOps Server, supportano progetti di sviluppo software, dalla pianificazione alla distribuzione. Azure DevOps usa la piattaforma distribuita come infrastruttura di servizi di Microsoft Azure e molti dei servizi di Azure, inclusi i database SQL di Azure, per offrire un servizio affidabile e disponibile a livello globale per i progetti di sviluppo.

Per altre informazioni sui passaggi impiegato da Microsoft per mantenere i progetti in Azure DevOps Services sicuro, disponibile, sicuro e privato, vedere questo white paper, Panoramica sulla protezione dei dati di Azure DevOps Services.

Account

Anche se i tipi principali di account di interesse sono gli account utente umani aggiunti all'organizzazione o al progetto, Azure DevOps supporta altri tipi di account per eseguire varie operazioni. Questi includono i tipi di account seguenti.

  • Proprietario dell'organizzazione: creatore di un'organizzazione di Azure DevOps Services o proprietario assegnato. Per informazioni su chi è il proprietario dell'organizzazione per l'organizzazione, vedere Cercare il proprietario dell'organizzazione.
  • Account di servizio: account Azure DevOps interni usati per supportare un servizio specifico, ad esempio il servizio pool di agenti, PipelinesSDK. Per le descrizioni degli account del servizio, vedere Gruppi di sicurezza, account di servizio e autorizzazioni.
  • Entità servizio o identità gestite: applicazioni Microsoft Entra o identità gestite aggiunte all'organizzazione per eseguire azioni per conto di un'applicazione di terze parti. Alcune entità servizio fanno riferimento agli account Azure DevOps interni per supportare le operazioni interne.
  • Agenti di processo: account interni usati per eseguire processi specifici in base a una pianificazione regolare.
  • Account di terze parti: account che richiedono l'accesso per supportare web hook, connessioni al servizio o altre applicazioni di terze parti.

In questi documenti, gli utenti possono fare riferimento a tutte le identità aggiunte all'hub utenti, che possono includere utenti umani ed entità servizio.

  • Account di servizio: account Azure DevOps interni usati per supportare un servizio specifico, ad esempio il servizio pool di agenti, PipelinesSDK. Per le descrizioni degli account del servizio, vedere Gruppi di sicurezza, account di servizio e autorizzazioni.
  • Entità servizio o identità gestite: applicazioni Microsoft Entra o identità gestite aggiunte all'organizzazione per eseguire azioni per conto di un'applicazione di terze parti. Alcune entità servizio fanno riferimento agli account Azure DevOps interni per supportare le operazioni interne.
  • Agenti di processo: account interni usati per eseguire processi specifici in base a una pianificazione regolare.
  • Account di terze parti: account che richiedono l'accesso per supportare web hook, connessioni al servizio o altre applicazioni di terze parti.

Il mezzo più efficace per la gestione degli account consiste nell'aggiungerli ai gruppi di sicurezza.

Nota

Il proprietario dell'organizzazione e i membri del gruppo di Amministrazione istrators della raccolta di progetti hanno accesso completo alla maggior parte di tutte le funzionalità e funzioni.

Autenticazione

L'autenticazione verifica un'identità dell'account in base alle credenziali fornite quando accedono ad Azure DevOps. Questi sistemi si integrano con e si basano sulle funzionalità di sicurezza fornite da questi altri sistemi:

  • Microsoft Entra ID
  • Account Microsoft (account del servizio gestito)
  • Active Directory (AD)

Microsoft Entra ID e MSA supportano l'autenticazione cloud. È consigliabile usare Microsoft Entra ID quando è necessario gestire un gruppo di utenti di grandi dimensioni. In caso contrario, se si ha una base utenti di piccole dimensioni che accede all'organizzazione in Azure DevOps, è possibile usare gli account Microsoft. Per altre informazioni, vedere Informazioni sull'accesso ad Azure DevOps con Microsoft Entra ID.

Per le distribuzioni locali, AD è consigliabile quando si gestisce un gruppo di utenti di grandi dimensioni. Per altre informazioni, vedere Configurare i gruppi da usare nelle distribuzioni locali.

Metodi di autenticazione, integrazione con altri servizi e app

Altre applicazioni e servizi possono essere integrate con i servizi e le risorse in Azure DevOps. Per accedere all'account senza richiedere più volte le credenziali utente, le app possono usare i metodi di autenticazione seguenti.

  • Token di accesso personale per generare token per conto proprio per:

    • Accedere a risorse o attività specifiche, ad esempio compilazioni o elementi di lavoro
    • Client come Xcode e NuGet che richiedono nomi utente e password come credenziali di base e non supportano l'account Microsoft e le funzionalità di Microsoft Entra, come l'autenticazione a più fattori
    • Accesso alle API REST di Azure DevOps
  • Azure DevOps OAuth per generare token per conto degli utenti per l'accesso alle API REST. Le API Accounts e Profiles supportano solo OAuth.

  • Autenticazione SSH per generare chiavi di crittografia per conto dell'utente durante l'uso di Linux, macOS o Windows per l'esecuzione di Git per Windows e non è possibile usare i gestori di credenziali GIT o i token di accesso personale per l'autenticazione HTTPS.

  • Entità servizio o identità gestite per generare token Microsoft Entra per conto di un'applicazione o di un servizio, che in genere automatizza alcuni flussi di lavoro che devono accedere alle risorse di Azure DevOps. La maggior parte delle azioni eseguite in genere da un account del servizio e da un token di accesso personale possono essere eseguite usando un'entità servizio o un'identità gestita.

Per impostazione predefinita, l'account o la raccolta consente di accedere a tutti i metodi di autenticazione. È possibile limitare l'accesso, ma è necessario limitare in modo specifico l'accesso per ogni metodo. Quando si nega l'accesso a un metodo di autenticazione, nessuna app può usare tale metodo per accedere all'account. Qualsiasi app che in precedenza aveva accesso ottiene un errore di autenticazione e non può accedere all'account.

Per altre informazioni su come archiviare le credenziali, vedere Archiviazione delle credenziali per Azure DevOps.

Per altre informazioni su come scegliere il meccanismo di autenticazione corretto, vedere Linee guida per l'autenticazione.

Autorizzazione

L'autorizzazione verifica che l'identità che sta tentando di connettersi disponga delle autorizzazioni necessarie per accedere a un servizio, una funzionalità, una funzione, un oggetto o un metodo. L'autorizzazione si verifica sempre dopo la riuscita dell'autenticazione. Se una connessione non viene autenticata, viene negata prima della verifica dell'autorizzazione. Se l'autenticazione di una connessione ha esito positivo, un'azione specifica potrebbe comunque non essere consentita perché l'utente o il gruppo non ha l'autorizzazione per eseguire tale azione.

L'autorizzazione dipende dalle autorizzazioni assegnate all'account. Le autorizzazioni vengono concesse direttamente a un account o tramite l'appartenenza a un gruppo di sicurezza o a un ruolo di sicurezza. I livelli di accesso e i flag di funzionalità possono anche concedere o limitare l'accesso a una funzionalità. Per altre informazioni su questi metodi di autorizzazione, vedere Introduzione alle autorizzazioni, all'accesso e ai gruppi di sicurezza.

Spazi dei nomi e autorizzazioni di sicurezza

Gli spazi dei nomi di sicurezza archiviano i dati che determinano il livello di accesso che gli account Azure DevOps devono eseguire un'azione specifica su una risorsa specifica. Ogni famiglia di risorse, ad esempio gli elementi di lavoro o i repository Git, viene protetta tramite uno spazio dei nomi univoco. Ogni spazio dei nomi di sicurezza contiene zero o più elenchi di controllo di accesso (ACL). Ogni ACL contiene un token, un flag di ereditarietà e un set di zero o più voci di controllo di accesso (ACL). Ogni ace contiene un descrittore di identità, una maschera di bit delle autorizzazioni consentite e una maschera di bit delle autorizzazioni negate.

Per altre informazioni, vedere Informazioni di riferimento su spazi dei nomi e autorizzazioni per la sicurezza.

Criteri di sicurezza

Per proteggere l'organizzazione e il codice, è possibile impostare molti criteri. In particolare, è possibile abilitare o disabilitare i criteri seguenti:

Generali

Criteri di sicurezza e connessione delle applicazioni

Usare i criteri del tenant di Microsoft Entra per limitare la creazione di nuove organizzazioni solo agli utenti desiderati. Questo criterio viene disattivato per impostazione predefinita e valido solo quando l'organizzazione è connessa all'ID Microsoft Entra. Per altri dettagli, vedere Limitare la creazione dell'organizzazione.

I criteri seguenti determinano l'accesso che si vuole concedere agli utenti e alle applicazioni alle organizzazioni:

Criteri utente

  • Accesso guest esterno (valido solo quando l'organizzazione è connessa a Microsoft Entra ID.): se abilitata, gli inviti possono essere inviati agli account di posta elettronica degli utenti che non sono membri del tenant Microsoft Entra ID tramite la pagina Utenti . Per altre informazioni, vedere Aggiungere utenti esterni all'organizzazione.
  • Consenti agli amministratori del team e del progetto di invitare nuovi utenti: valido solo quando l'organizzazione è connessa a Microsoft Entra ID. Se abilitato, gli amministratori del team e del progetto possono aggiungere utenti tramite la pagina Utenti . Per altre informazioni, vedere Limitare nuovi inviti utente da Project e Team Amministrazione istrators.
  • Richiedi accesso: valido solo quando l'organizzazione è connessa a Microsoft Entra ID. Se abilitata, gli utenti possono richiedere l'accesso a una risorsa. Una richiesta genera una notifica tramite posta elettronica agli amministratori che richiedono la verifica e l'accesso, in base alle esigenze. Per altre informazioni, vedere Aggiungere utenti esterni all'organizzazione.
  • Invitare gli utenti di GitHub: valido solo quando l'organizzazione non è connessa all'ID Microsoft Entra. Se abilitata, gli amministratori possono aggiungere utenti in base ai propri account utente GitHub dalla pagina Utenti . Per altre informazioni, vedere Domande frequenti sull'autenticazione e l'invito degli utenti di GitHub.

Gruppo Utenti con ambito progetto

Per impostazione predefinita, gli utenti aggiunti a un'organizzazione possono visualizzare tutte le informazioni e le impostazioni del progetto. Sono inclusi la visualizzazione dell'elenco di utenti, l'elenco di progetti, i dettagli di fatturazione, i dati di utilizzo e altro ancora a cui si accede tramite l'Impostazioni dell'organizzazione.

Importante

  • Le funzionalità di visibilità limitate descritte in questa sezione si applicano solo alle interazioni tramite il portale Web. Con le API REST o azure devops i comandi dell'interfaccia della riga di comando, i membri del progetto possono accedere ai dati limitati.
  • Gli utenti guest membri del gruppo limitato con accesso predefinito in Microsoft Entra ID non possono cercare gli utenti con la selezione utenti. Quando la funzionalità di anteprima è disattivata per l'organizzazione o quando gli utenti guest non sono membri del gruppo limitato, gli utenti guest possono cercare tutti gli utenti di Microsoft Entra, come previsto.

Per limitare gli utenti selezionati, ad esempio stakeholder, utenti guest di Microsoft Entra o membri di un determinato gruppo di sicurezza, è possibile abilitare la funzionalità Limita visibilità utente e collaborazione a progetti specifici per l'organizzazione. Dopo l'abilitazione, tutti gli utenti o i gruppi aggiunti al gruppo Utenti con ambito progetto sono limitati nei modi seguenti:

  • È possibile accedere solo alle pagine Panoramica e progetti dell'Impostazioni organizzazione.
  • Può connettersi e visualizzare solo i progetti a cui sono stati aggiunti in modo esplicito (vedere Aggiungere utenti a un progetto o a un team.
  • È possibile selezionare solo le identità utente e di gruppo aggiunte in modo esplicito al progetto a cui sono connesse.

Per altre informazioni, vedere Gestire l'organizzazione, Limitare la visibilità degli utenti per i progetti e altre funzionalità di anteprima e Gestire le funzionalità di anteprima.

Avviso

Quando la funzionalità Limita visibilità utente e collaborazione a progetti specifici è abilitata per l'organizzazione, gli utenti con ambito progetto non sono in grado di cercare gli utenti aggiunti all'organizzazione tramite l'appartenenza al gruppo Microsoft Entra, anziché tramite un invito esplicito dell'utente. Si tratta di un comportamento imprevisto e si sta lavorando a una risoluzione. Per risolvere automaticamente questo problema, disabilitare la funzionalità Limita visibilità utente e collaborazione a progetti specifici per l'organizzazione.

Repository Git e criteri di ramo

Per proteggere il codice, è possibile impostare molti criteri del repository Git e dei rami. Per altre informazioni, consulta gli articoli seguenti.

Sicurezza di Azure Repos e Azure Pipelines

Poiché i repository e le pipeline di compilazione e rilascio comportano problemi di sicurezza univoci, vengono usate altre funzionalità oltre alle funzionalità descritte in questo articolo. Per altre informazioni, consulta gli articoli seguenti.

Passaggi successivi