Accedere a repository, artefatti e altre risorse

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

In fase di esecuzione, ogni processo in una pipeline può accedere ad altre risorse in Azure DevOps. Ad esempio, un processo può:

  • Estrazione del codice sorgente da un repository Git
  • Aggiungere un tag al repository
  • Accedere a un feed in Azure Artifacts
  • Caricare i log dall'agente al servizio
  • Caricare i risultati dei test e altri artefatti dall'agente al servizio
  • Aggiornare un elemento di lavoro

Azure Pipelines usa token di accesso dei processi per eseguire queste attività. Un token di accesso al processo è un token di sicurezza generato dinamicamente da Azure Pipelines per ogni processo in fase di esecuzione. L'agente in cui è in esecuzione il processo usa il token di accesso del processo per accedere a queste risorse in Azure DevOps. È possibile controllare le risorse a cui la pipeline ha accesso controllando la modalità di concessione delle autorizzazioni ai token di accesso dei processi.

Le autorizzazioni del token sono derivate a) dall'ambito di autorizzazione del processo e (b) dalle autorizzazioni impostate nell'account del servizio di compilazione del progetto o della raccolta.

Ambito di autorizzazione processo

È possibile impostare l'ambito di autorizzazione del processo come raccolta o progetto. Impostando l'ambito sulla raccolta, si sceglie di consentire alle pipeline di accedere a tutti i repository nella raccolta o nell'organizzazione. Impostando l'ambito sul progetto, si sceglie di limitare l'accesso solo ai repository che si trovano nello stesso progetto della pipeline.

L'ambito di autorizzazione del processo può essere impostato per l'intera organizzazione di Azure DevOps o per un progetto specifico.

Nota

In Azure DevOps Server 2020 limitare l'ambito di autorizzazione del processo al progetto corrente si applica solo alle pipeline YAML e alle pipeline di compilazione classiche. Non si applica alle pipeline di versione classiche. Le pipeline di versione classica vengono sempre eseguite con l'ambito della raccolta di progetti.

Per impostare l'ambito di autorizzazione del processo per l'organizzazione:

  • Passare alla pagina delle impostazioni dell'organizzazione nell'interfaccia utente di Azure DevOps.
  • Selezionare Impostazioni in Pipeline.
  • Abilitare Limita l'ambito di autorizzazione del processo al progetto corrente per limitare l'ambito al progetto. Questa è l'impostazione consigliata, perché migliora la sicurezza per le pipeline.

Per impostare l'ambito di autorizzazione del processo per un progetto specifico:

  • Passare alla pagina delle impostazioni del progetto nell'interfaccia utente di Azure DevOps.
  • Selezionare Impostazioni in Pipeline.
  • Abilitare Limita l'ambito di autorizzazione del processo al progetto corrente per limitare l'ambito al progetto. Questa è l'impostazione consigliata, perché migliora la sicurezza per le pipeline.
  • Per impostare l'ambito di autorizzazione del processo a livello di organizzazione per tutti i progetti, scegliere Pipeline di> impostazioni>organizzazione Impostazioni.
  • Per impostare l'ambito di autorizzazione del processo per un progetto specifico, scegliere Pipeline di> impostazioni>progetto Impostazioni.

Abilitare una o più delle impostazioni seguenti. È consigliabile abilitare queste impostazioni, perché migliora la sicurezza per le pipeline.

  • Limitare l'ambito di autorizzazione del processo al progetto corrente per le pipeline non di versione: questa impostazione si applica alle pipeline YAML e alle pipeline di compilazione classiche e non si applica alle pipeline di versione classiche.
  • Limitare l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione: questa impostazione si applica solo alle pipeline di versione classiche.

Nota

Se l'ambito è impostato su progetto a livello di organizzazione, non è possibile modificare l'ambito in ogni progetto.

Importante

Se l'ambito non è limitato a livello di organizzazione o di progetto, ogni processo nella pipeline YAML ottiene un token di accesso al processo con ambito raccolta. In altre parole, la pipeline ha accesso a qualsiasi repository in qualsiasi progetto dell'organizzazione. Se un avversario è in grado di ottenere l'accesso a una singola pipeline in un singolo progetto, sarà in grado di ottenere l'accesso a qualsiasi repository nell'organizzazione. Per questo motivo, è consigliabile limitare l'ambito al livello più alto (impostazioni dell'organizzazione) per contenere l'attacco a un singolo progetto.

Se si usa Azure DevOps Server 2019, tutti i processi YAML vengono eseguiti con l'ambito di autorizzazione del processo impostato sulla raccolta. In altre parole, questi processi hanno accesso a tutti i repository nella raccolta di progetti. Non è possibile modificarlo in Azure DevOps Server 2019.

Le pipeline YAML non sono disponibili in TFS.

Nota

Se la pipeline si trova in un progetto pubblico, l'ambito di autorizzazione del processo viene automaticamente limitato al progetto indipendentemente da ciò che si configura in qualsiasi impostazione. I processi in un progetto pubblico possono accedere a risorse quali artefatti di compilazione o risultati di test solo all'interno del progetto e non da altri progetti dell'organizzazione.

Limitare l'ambito di autorizzazione del processo ai repository Azure DevOps a cui si fa riferimento

Oltre alle impostazioni dell'ambito di autorizzazione del processo descritte nella sezione precedente, Azure Pipelines fornisce un ambito di autorizzazione limite per l'impostazione dei repository Azure DevOps a cui si fa riferimento.

Le pipeline possono accedere a qualsiasi repository Di Azure DevOps nei progetti autorizzati, a meno che non sia abilitato Limitare l'ambito di autorizzazione del processo ai repository Azure DevOps a cui si fa riferimento. Con questa opzione abilitata, è possibile ridurre l'ambito di accesso per tutte le pipeline solo ai repository Azure DevOps a cui fa riferimento in modo esplicito un checkout passaggio o un'istruzione uses nel processo della pipeline che usa tale repository.

Per altre informazioni, vedere Repository Git di Azure Repos - Limitare l'ambito di autorizzazione del processo ai repository Azure DevOps a cui si fa riferimento.

Proteggere l'accesso ai repository nelle pipeline YAML

Oltre alle impostazioni dell'ambito di autorizzazione del processo descritte nella sezione precedente, Azure Pipelines fornisce un'impostazione Proteggi l'accesso ai repository nelle pipeline YAML.

Le pipeline possono accedere a qualsiasi repository Di Azure DevOps nei progetti autorizzati, a meno che non sia abilitato Proteggere l'accesso ai repository nelle pipeline YAML. Con questa opzione abilitata, è possibile ridurre l'ambito di accesso per tutte le pipeline solo ai repository Azure DevOps a cui fa riferimento in modo esplicito un checkout passaggio o un'istruzione uses nel processo della pipeline che usa tale repository.

Per altre informazioni, vedere Repository Git di Azure Repos - Proteggere l'accesso ai repository nelle pipeline YAML.

Importante

Proteggere l'accesso ai repository nelle pipeline YAML è abilitato per impostazione predefinita per le nuove organizzazioni e i nuovi progetti creati dopo maggio 2020.

Identità di compilazione con ambito

Azure DevOps usa due identità predefinite per eseguire pipeline.

  • Identità con ambito raccolta, che ha accesso a tutti i progetti nella raccolta (o all'organizzazione per Azure DevOps Services)
  • Identità con ambito progetto, che ha accesso a un singolo progetto

Queste identità vengono allocate autorizzazioni necessarie per eseguire attività in fase di compilazione/rilascio quando si esegue il richiamo al sistema Azure DevOps. Sono disponibili autorizzazioni predefinite predefinite ed è anche possibile gestire le proprie autorizzazioni in base alle esigenze.

Il nome dell'identità con ambito raccolta ha il formato seguente:

  • Project Collection Build Service ({OrgName})
  • Ad esempio, se il nome dell'organizzazione è fabrikam-tailspin, questo account ha il nome Project Collection Build Service (fabrikam-tailspin).

Il nome dell'identità con ambito progetto ha il formato seguente:

  • {Project Name} Build Service ({Org Name})
  • Ad esempio, se il nome dell'organizzazione è fabrikam-tailspin e il nome del progetto è SpaceGameWeb, questo account ha il nome SpaceGameWeb Build Service (fabrikam-tailspin).

Per impostazione predefinita, viene usata l'identità con ambito raccolta, a meno che non sia configurata diversamente come descritto nella sezione precedente Ambito autorizzazione processo.

Gestire le autorizzazioni dell'account del servizio di compilazione

Un risultato dell'impostazione dell'accesso con ambito progetto può essere che l'identità con ambito progetto potrebbe non disporre delle autorizzazioni per una risorsa con ambito raccolta.

È possibile modificare le autorizzazioni del token di accesso al processo in scenari come i seguenti:

  • Si vuole che la pipeline accressi a un feed che si trova in un progetto diverso.
  • Si vuole che la pipeline sia limitata dalla modifica del codice nel repository.
  • Si vuole che la pipeline sia limitata dalla creazione di elementi di lavoro.

Per aggiornare le autorizzazioni del token di accesso al processo:

  • Prima di tutto, determinare l'ambito di autorizzazione del processo per la pipeline. Vedere la sezione precedente per comprendere l'ambito di autorizzazione del processo. Se l'ambito di autorizzazione del processo è una raccolta, l'account del servizio di compilazione corrispondente per gestire le autorizzazioni per è Project Collection Build Service (nome-raccolta). Se l'ambito di autorizzazione del processo è progetto, l'account del servizio di compilazione per gestire le autorizzazioni per è Your-project-name Build Service (your-collection-name).

  • Per limitare o concedere l'accesso aggiuntivo al servizio compilazione raccolta progetti (nome-raccolta):

    • Selezionare Gestisci sicurezza nel menu di overflow nella pagina Pipeline .
    • In Utenti selezionare Project Collection Build Service (your-collection-name).
    • Apportare modifiche alle autorizzazioni correlate alle pipeline per questo account.
    • Passare alle impostazioni dell'organizzazione per l'organizzazione Azure DevOps (o le impostazioni di raccolta per la raccolta di progetti).
    • Selezionare Autorizzazioni in Sicurezza.
    • Nella scheda Utenti cercare Project Collection Build Service (nome-raccolta).
    • Apportare modifiche alle autorizzazioni non correlate alle pipeline per questo account.
    • Poiché Project Collection Build Service (nome-raccolta) è un utente dell'organizzazione o della raccolta, è possibile aggiungere questo account in modo esplicito a qualsiasi risorsa, ad esempio a un feed in Azure Artifacts.
  • Per limitare o concedere l'accesso aggiuntivo al servizio di compilazione Your-project-name (nome-raccolta):

    • L'account del servizio di compilazione in cui è possibile gestire le autorizzazioni verrà creato solo dopo l'esecuzione della pipeline una sola volta. Assicurarsi di aver già eseguito la pipeline una sola volta.
    • Selezionare Gestisci sicurezza nel menu di overflow nella pagina Pipeline .
    • In Utenti selezionare Servizio di compilazione nome-progetto (nome-raccolta).
    • Apportare modifiche alle autorizzazioni correlate alle pipeline per questo account.
    • Passare alle impostazioni dell'organizzazione per l'organizzazione Azure DevOps (o le impostazioni di raccolta per la raccolta di progetti).
    • Selezionare Autorizzazioni in Sicurezza.
    • Nella scheda Utenti cercare il servizio di compilazione Nome-progetto (nome-raccolta).
    • Apportare modifiche alle autorizzazioni non correlate alle pipeline per questo account.
    • Poiché your-project-name Build Service (your-collection-name) è un utente dell'organizzazione o della raccolta, è possibile aggiungere questo account in modo esplicito a qualsiasi risorsa, ad esempio a un feed in Azure Artifacts.

Configurare le autorizzazioni per un progetto per accedere a un altro progetto nella stessa raccolta di progetti

In questo esempio, all'identità fabrikam-tailspin/SpaceGameWeb di compilazione con ambito progetto vengono concesse le autorizzazioni per accedere al fabrikam-tailspin/FabrikamFiber progetto.

  1. Nel progetto FabrikamFiber passare a Impostazioni progetto, Autorizzazioni.

    Screenshot di come configurare le impostazioni del progetto.

  2. Creare un nuovo gruppo denominato Progetti esterni e aggiungere l'account del servizio SpaceGameWeb Build. Screenshot della creazione di un nuovo gruppo di sicurezza.

  3. Scegliere Utenti, iniziare a digitare il nome SpaceGameWeb e selezionare l'account del servizio SpaceGameWeb Build. Se inizialmente non vengono visualizzati risultati della ricerca, selezionare Espandi ricerca.

    Screenshot della selezione dell'utente dell'identità di compilazione con ambito progetto SpaceGameWeb.

  4. Concedere all'utente l'autorizzazione Visualizza informazioni a livello di progetto.

    Screenshot di come concedere l'autorizzazione Visualizza informazioni a livello di progetto per un utente.

Esempio: configurare le autorizzazioni per accedere a un altro repository nella stessa raccolta di progetti

In questo esempio, all'identità fabrikam-tailspin/SpaceGameWeb di compilazione con ambito progetto viene concessa l'autorizzazione per accedere al FabrikamFiber repository nel fabrikam-tailspin/FabrikamFiber progetto.

  1. Seguire la procedura per concedere all'identità di compilazione con ambito progetto l'autorizzazione SpaceGameWeb per accedere al FabrikamFiber progetto.

  2. Nel progetto FabrikamFiber passare a Impostazioni progetto, Repository, FabrikamFiber.

    Configurare l'accesso al repository.

  1. Scegliere l'icona + , iniziare a digitare il nome SpaceGameWeb e selezionare l'account del servizio SpaceGameWeb Build.

    Aggiungere l'utente per l'accesso al repository.

  1. Iniziare a digitare il nome SpaceGameWeb e selezionare l'account spaceGameWeb Build Service .

    Screenshot di come aggiungere un utente per l'accesso al repository.

  1. Concedere le autorizzazioni di lettura per l'utente.

    Screenshot di come configurare le autorizzazioni del repository.

Esempio: configurare le autorizzazioni per accedere ad altre risorse nella stessa raccolta di progetti

In questo esempio, all'identità fabrikam-tailspin/SpaceGameWeb di compilazione con ambito progetto vengono concesse le autorizzazioni per accedere ad altre risorse nel fabrikam-tailspin/FabrikamFiber progetto.

  1. Seguire la procedura per concedere all'identità di compilazione con ambito progetto l'autorizzazione SpaceGameWeb per accedere al FabrikamFiber progetto.

  2. Configurare le autorizzazioni desiderate per l'utente.

    Configurare le autorizzazioni utente.

Domande frequenti

Ricerca per categorie determinare l'ambito di autorizzazione del processo della pipeline YAML?

  • Se il progetto è un progetto pubblico, l'ambito di autorizzazione del processo è sempre progetto indipendentemente da qualsiasi altra impostazione.

Tutte le pipeline YAML in Azure DevOps Server 2019 vengono eseguite nell'ambito di autorizzazione del processo di raccolta .

  • Controllare le impostazioni della pipeline nelle impostazioni dell'organizzazione di Azure DevOps:
    • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente, l'ambito è project.
    • Se Limita l'ambito di autorizzazione del processo al progetto corrente non è abilitato, controllare le impostazioni della pipeline nelle impostazioni del progetto in Azure DevOps:
      • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente, l'ambito è project.
      • In caso contrario, l'ambito è una raccolta.
  • Se la pipeline si trova in un progetto privato, controllare le impostazioni della pipeline nelle impostazioni dell'organizzazione di Azure DevOps:
    • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline non di rilascio, l'ambito è project.
    • Se l'ambito di autorizzazione del processo limita al progetto corrente per le pipeline non di versione non è abilitato, controllare le impostazioni della pipeline nelle impostazioni del progetto in Azure DevOps:
      • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline non di rilascio, l'ambito è project.
      • In caso contrario, l'ambito è una raccolta.

Ricerca per categorie determinare l'ambito di autorizzazione del processo della pipeline di compilazione classica?

  • Se la pipeline si trova in un progetto pubblico, l'ambito di autorizzazione del processo è progetto indipendentemente da qualsiasi altra impostazione.
  • Aprire l'editor per la pipeline e passare alla scheda Opzioni .
    • Se l'ambito di autorizzazione del processo di compilazione è Progetto corrente, l'ambito è project.
    • In caso contrario, l'ambito è una raccolta.
  • Controllare le impostazioni della pipeline nelle impostazioni dell'organizzazione di Azure DevOps:
    • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente, l'ambito è project.
    • Se Limita l'ambito di autorizzazione del processo al progetto corrente non è abilitato, controllare le impostazioni della pipeline nelle impostazioni del progetto in Azure DevOps:
      • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente, l'ambito è project.
      • Se l'ambito di autorizzazione del processo limite al progetto corrente non è abilitato, aprire l'editor per la pipeline e passare alla scheda Opzioni .
        • Se l'ambito di autorizzazione del processo di compilazione è Progetto corrente, l'ambito è project.
        • In caso contrario, l'ambito è una raccolta.
  • Se la pipeline si trova in un progetto privato, controllare le impostazioni della pipeline nelle impostazioni dell'organizzazione di Azure DevOps:
    • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline non di rilascio, l'ambito è project.
    • Se l'ambito di autorizzazione del processo limita al progetto corrente per le pipeline non di versione non è abilitato, controllare le impostazioni della pipeline nelle impostazioni del progetto in Azure DevOps:
      • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline non di rilascio, l'ambito è project.
      • Se l'ambito di autorizzazione del processo limita al progetto corrente per le pipeline non di versione non è abilitato, aprire l'editor per la pipeline e passare alla scheda Opzioni .
        • Se l'ambito di autorizzazione del processo di compilazione è Progetto corrente, l'ambito è project.
        • In alternativa, l'ambito è la raccolta.

Quando si crea una nuova pipeline classica, l'ambito di autorizzazione del processo viene impostato sul progetto corrente e l'ambito di autorizzazione del processo di compilazione è impostato su progetto per impostazione predefinita.

Ricerca per categorie determinare l'ambito di autorizzazione del processo della pipeline di versione classica?

Le pipeline di versione classica in Azure DevOps Server 2020 e versioni successive vengono eseguite con ambito raccolta .

  • Se la pipeline si trova in un progetto pubblico, l'ambito di autorizzazione del processo è progetto indipendentemente da qualsiasi altra impostazione.
  • Se la pipeline si trova in un progetto privato, controllare le impostazioni della pipeline nelle impostazioni dell'organizzazione di Azure DevOps:
    • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione, l'ambito è project.
    • Se l'ambito di autorizzazione del processo limita al progetto corrente per le pipeline di versione non è abilitato, controllare le impostazioni della pipeline nelle impostazioni del progetto in Azure DevOps:
      • Se è abilitato Limita l'ambito di autorizzazione del processo al progetto corrente per le pipeline di versione, l'ambito è project.
      • In caso contrario, l'ambito è una raccolta.