Condividi tramite


Autenticazione OAuth 2.0 per le API REST di Azure DevOps

Servizi di Azure DevOps

Informazioni su come usare OAuth 2.0 per autenticare le applicazioni per l'accesso all'API REST di Azure DevOps senza richiedere agli utenti di fornire ripetutamente le credenziali.

Importante

Microsoft Entra ID OAuth è l'approccio consigliato per le nuove applicazioni. Azure DevOps OAuth 2.0 è deprecato e non accetta più nuove registrazioni a partire da aprile 2025, con deprecazione completa pianificata per il 2026.

Funzionamento di OAuth 2.0 con Azure DevOps

Nota

OAuth 2.0 è disponibile solo per Azure DevOps Services, non per Azure DevOps Server. Per gli scenari locali, usare librerie client, autenticazione di Windows o token di accesso personale.

Azure DevOps Services usa il protocollo OAuth 2.0 per autorizzare le applicazioni e generare token di accesso per le chiamate API REST. Il processo prevede:

  1. Registrazione dell'app: registrare l'applicazione con il provider OAuth
  2. Autorizzazione utente: gli utenti concedono l'autorizzazione per l'accesso ai dati dell'app
  3. Scambio di token: ricevere un token di accesso per effettuare chiamate API
  4. Accesso api: usare il token per le richieste dell'API REST autenticate
  5. Aggiornamento del token: aggiornare i token scaduti per mantenere l'accesso

Diagramma del flusso di autorizzazione OAuth 2.0 che mostra il processo dalla registrazione dell'app all'accesso all'API.

Opzioni di implementazione di OAuth

Scegliere l'implementazione OAuth appropriata in base alle esigenze dell'applicazione:

Microsoft Entra ID OAuth offre il metodo di autenticazione più sicuro e a prova di futuro per le applicazioni Azure DevOps. I vantaggi includono:

  • Integrazione aziendale: integrazione facile con l'infrastruttura esistente di Microsoft Entra ID
  • Sicurezza avanzata: funzionalità di sicurezza avanzate, tra cui l'accesso condizionale e l'autenticazione a più fattori
  • Supporto futuro: piattaforma gestita e supportata attivamente
  • Identità unificata: esperienza single sign-on tra i servizi Microsoft

Introduzione: seguire la guida OAuth per Microsoft Entra ID per informazioni dettagliate sull'implementazione e indicazioni sulla migrazione.

OAuth di Azure DevOps (deprecato)

Avvertimento

Azure DevOps OAuth è deprecato. Le nuove registrazioni di app non vengono più accettate a partire da aprile 2025 e il servizio è pianificato per la deprecazione completa nel 2026. Eseguire la migrazione di applicazioni esistenti a Microsoft Entra ID OAuth.

Per le applicazioni OAuth di Azure DevOps esistenti:

Suggerimento

Pianificazione della migrazione: iniziare a pianificare la migrazione a Microsoft Entra ID OAuth in anticipo. La guida alla migrazione fornisce suggerimenti e considerazioni per una transizione senza problemi.

Ambiti OAuth

Gli ambiti definiscono le risorse di Azure DevOps a cui l'applicazione può accedere. Sia Microsoft Entra ID OAuth che Azure DevOps OAuth usano le stesse definizioni di ambito.

Considerazioni chiave sull'ambito

  • Principio dei privilegi minimi: richiedere solo gli ambiti minimi necessari per l'applicazione.
  • Ereditarietà dell'ambito: alcuni ambiti includono altri , ad esempio vso.code_manage include vso.code_write.
  • Copertura API: gli ambiti consentono l'accesso alle API REST e selezionano solo endpoint Git (API SOAP non supportate).
  • Consenso utente: gli utenti devono concedere in modo esplicito l'autorizzazione per ogni ambito richiesto.

Individuazione degli ambiti obbligatori

Per determinare gli ambiti necessari per l'applicazione:

  1. Controllare la documentazione di riferimento api per ogni endpoint che si prevede di usare.
  2. Cercare il scopes header in ogni pagina dell'API.
  3. Per evitare di richiedere autorizzazioni ridondanti, prendere in considerazione le relazioni di ambito.

Ambiti disponibili

Categoria Ambito Nome Privilegi elevati Descrizione Eredita da
Sicurezza avanzata vso.advsec SicurezzaAvanzata (lettura) Concede la possibilità di leggere avvisi, istanze di risultati, e istanze di risultati dell'analisi.
vso.advsec_write AdvancedSecurity (lettura e scrittura) Concede la possibilità di caricare analisi in sarif. vso.advsec
vso.advsec_manage AdvancedSecurity (lettura, scrittura e gestione) Concede la possibilità di caricare analisi in sarif. vso.advsec_write
Pool di agenti vso.agentpools Pool di agenti (solo lettura) Concede la possibilità di visualizzare le attività, i pool, le code, gli agenti e gli incarichi attualmente in esecuzione o completati di recente dagli agenti.
vso.agentpools_manage Pool di agenti (lettura, gestione) Offre la possibilità di gestire gruppi, code e agenti. vso.agentpools
vso.environment_manage Ambiente (lettura, gestione) Dà la possibilità di gestire pool, code, agenti e ambienti. vso.agentpools_manage
Analisi vso.analytics Analisi (lettura) Concede la possibilità di eseguire query sui dati di analisi.
Revisione vso.auditlog Registro di controllo (lettura) Concede la possibilità di leggere il log di controllo agli utenti.
vso.auditstreams_manage Flussi di verifica (lettura) Concede la possibilità di gestire i flussi di controllo agli utenti. vso.auditlog
Costruire vso.build Compilazione (lettura) Concede la possibilità di accedere agli artefatti di compilazione, inclusi i risultati di compilazione, le definizioni e le richieste e la possibilità di ricevere notifiche sugli eventi di compilazione tramite hook del servizio. vso.hooks_write
vso.build_execute Compilazione (lettura ed esecuzione) Concede la possibilità di accedere agli artefatti di compilazione, inclusi i risultati di compilazione, le definizioni e le richieste e la possibilità di accodare una compilazione, aggiornare le proprietà di compilazione e la possibilità di ricevere notifiche sugli eventi di compilazione tramite hook del servizio. vso.build
Codice vso.code Codice (leggi) Concede la possibilità di leggere il codice sorgente e i metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di cercare il codice e ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. vso.hooks_write
vso.code_write Codice (lettura e scrittura) Concede la possibilità di leggere, aggiornare ed eliminare il codice sorgente, accedere ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire richieste pull e revisioni del codice e di ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. vso.code
vso.code_manage Codice (lettura, scrittura e gestione) Concede la possibilità di leggere, aggiornare ed eliminare il codice sorgente, accedere ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire repository di codice, creare e gestire richieste pull e revisioni del codice e ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. vso.code_write
vso.code_full Codice (completo) Concede l'accesso completo al codice sorgente, ai metadati relativi a commit, insiemi di modifiche, rami e altri artefatti del controllo della versione. Concede inoltre la possibilità di creare e gestire repository di codice, creare e gestire richieste pull e revisioni del codice e ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. Include anche il supporto limitato per le API OM client. vso.code_manage
vso.code_status Codice (stato) Fornisce l'accesso per leggere e scrivere lo stato dei commit e delle pull request.
Server connesso vso.connected_server Server collegato Concede la possibilità di accedere agli endpoint necessari da un server connesso locale.
Diritti vso.entitlements Autorizzazioni (lettura) Fornisce accesso in sola lettura all'endpoint delle autorizzazioni di licenza per ottenere le autorizzazioni account.
vso.memberentitlementmanagement Gestione dei Diritti dei Membri (lettura) Fornisce la possibilità di leggere gli utenti, le loro licenze, nonché i progetti e le estensioni a cui possono accedere.
vso.memberentitlementmanagement_write Gestione dei diritti del membro (scrittura) Concede la possibilità di gestire gli utenti, le licenze e i progetti e le estensioni a cui possono accedere. vso.memberentitlementmanagement
Estensioni vso.extension Estensioni (in lettura) Concede la possibilità di leggere le estensioni installate. vso.profile
vso.extension_manage Estensioni (leggere e gestire) Concede la possibilità di installare, disinstallare ed eseguire altre azioni amministrative sulle estensioni installate. vso.extension
vso.extension.data Dati relativi alle estensioni (consultazione) Concede la possibilità di leggere i dati (impostazioni e documenti) archiviati dalle estensioni installate. vso.profile
vso.extension.data_write Dati di estensione (lettura e scrittura) Concede la possibilità di leggere e scrivere dati (impostazioni e documenti) archiviati dalle estensioni installate. vso.extension.data
Connessioni GitHub vso.githubconnections Connessioni GitHub (solo lettura) Concede la possibilità di leggere le connessioni GitHub e i dati dei repository GitHub.
vso.githubconnections_manage Connessioni GitHub (lettura e gestione) Concede la possibilità di leggere e gestire le connessioni GitHub e i dati dei repository GitHub vso.githubconnections
Grafico e identità vso.graph Grafico (letto) Consente la possibilità di leggere le informazioni su utenti, gruppi, ambito e appartenenza ai gruppi.
vso.graph_manage Grafico (gestire) Concede la possibilità di leggere informazioni su utenti, gruppi, ambito e appartenenza a gruppi e aggiungere utenti, gruppi e gestire le appartenenze ai gruppi. vso.graph
vso.identity Identità (lettura) Concede la possibilità di leggere identità e gruppi.
vso.identity_manage Gestione delle identità Concede la possibilità di leggere, scrivere e gestire identità e gruppi. vso.identity
Gruppo Macchine vso.machinegroup_manage Gruppo di distribuzione (lettura, gestione) Consente di gestire gruppi di distribuzione e pool di agenti. vso.agentpools_manage
Piattaforma di mercato vso.gallery Mercato Conferisce l'accesso in lettura agli elementi e agli editori pubblici e privati. vso.profile
vso.gallery_acquire Marketplace (acquisizione) Concede l'accesso in lettura e la possibilità di acquisire oggetti. vso.gallery
vso.gallery_publish Marketplace (pubblicazione) Concede l'accesso in lettura e la possibilità di caricare, aggiornare e condividere elementi. vso.gallery
vso.gallery_manage Marketplace (gestisci) Fornisce l'accesso in lettura e la possibilità di pubblicare e gestire elementi, oltre a gestire gli editori. vso.gallery_publish
Notifiche vso.notification Notifiche (lettura) Fornisce l'accesso in lettura alle sottoscrizioni e ai metadati degli eventi, inclusi i valori dei campi filtrabili. vso.profile
vso.notification_write Notifiche (scrivere) Fornisce l'accesso in lettura e scrittura alle sottoscrizioni e l'accesso in lettura ai metadati degli eventi, inclusi i valori di campo filtrabili. vso.notification
vso.notification_manage Gestisci notifiche Fornisce l'accesso in lettura, scrittura e gestione alle sottoscrizioni e l'accesso in lettura ai metadati degli eventi, inclusi i valori dei campi filtrabili. vso.notification_write
vso.notification_diagnostics Notifiche (diagnostica) Fornisce l'accesso ai log di diagnostica correlati alle notifiche e consente di abilitare la diagnostica per le singole sottoscrizioni. vso.notification
Imballaggio vso.packaging Imballaggio (lettura) Conferisce la possibilità di leggere feed e pacchetti. vso.profile
vso.packaging_write Imballaggio (lettura e scrittura) Concede la possibilità di creare e leggere feed e pacchetti. vso.packaging
vso.packaging_manage Gestione dei pacchetti (lettura, scrittura e gestione) Concede la possibilità di creare, leggere, aggiornare ed eliminare feed e pacchetti. vso.packaging_write
Risorse della pipeline vso.pipelineresources_use Utilizzo delle risorse della pipeline Concede la possibilità di approvare la richiesta di una pipeline di usare una risorsa protetta: pool di agenti, ambiente, coda, repository, file protetti, connessione al servizio e gruppo di variabili.
vso.pipelineresources_manage Risorse della pipeline (uso e gestione) Concede la possibilità di gestire una risorsa protetta o una richiesta di una pipeline di usare una risorsa protetta: pool di agenti, ambiente, coda, repository, file protetti, connessione al servizio e gruppo di variabili. vso.pipelineresources_use
Progetto e team vso.project Progetto e team (in lettura) Conferisce la facoltà di leggere progetti e team.
vso.project_write Progetto e team (lettura e scrittura) Concede la possibilità di leggere e aggiornare progetti e team. vso.project
vso.project_manage Progetto e team (lettura, scrittura e gestione) Concede la possibilità di creare, leggere, aggiornare ed eliminare progetti e team. vso.project_write
Rilascio vso.release Rilascio (lettura) Concede la facoltà di leggere gli artefatti del rilascio, inclusi i rilasci, le definizioni di rilascio e gli ambienti di rilascio. vso.profile
vso.release_execute Rilascio (lettura, scrittura ed esecuzione) Concede la possibilità di leggere e aggiornare gli artefatti di rilascio, inclusi i rilasci, le definizioni di rilascio e l'ambiente di rilascio, e la possibilità di mettere in coda un nuovo rilascio. vso.release
vso.release_manage Rilascio (lettura, scrittura, esecuzione e gestione) Concede la possibilità di leggere, aggiornare ed eliminare i componenti di rilascio, comprese le versioni, le definizioni di rilascio e l'ambiente di rilascio, e la possibilità di accodare e approvare un nuovo rilascio. vso.release_execute
File sicuri vso.securefiles_read File protetti (lettura) Concede la possibilità di leggere file protetti.
vso.securefiles_write File protetti (lettura, creazione) Concede la possibilità di leggere e creare file sicuri. vso.securefiles_read
vso.securefiles_manage File protetti (lettura, creazione e gestione) Concede la possibilità di leggere, creare e gestire file sicuri. vso.securefiles_write
Sicurezza vso.security_manage Sicurezza (gestione) Concede la possibilità di leggere, scrivere e gestire le autorizzazioni di sicurezza.
Connessioni al servizio vso.serviceendpoint Endpoint del servizio (lettura) Concede la possibilità di leggere gli endpoint di servizio. vso.profile
vso.serviceendpoint_query Endpoint di servizio (lettura e query) Concede la possibilità di leggere ed eseguire query sugli endpoint del servizio. vso.serviceendpoint
vso.serviceendpoint_manage Endpoint di Servizio (lettura, query e gestione) Concede la possibilità di leggere, eseguire query e gestire gli endpoint di servizio. vso.serviceendpoint_query
Agganci di servizio vso.hooks Hook del servizio (lettura) Concede la possibilità di leggere sottoscrizioni e metadati degli hook di servizio, inclusi eventi supportati, consumer e azioni. (Non più pubblico. vso.profile
vso.hooks_write Hook di servizio (lettura e scrittura) Concede la possibilità di creare e aggiornare sottoscrizioni agli hook di servizio e leggere i metadati, inclusi gli eventi supportati, i consumatori e le azioni. (Non più pubblico. vso.hooks
vso.hooks_interact Ganci del servizio (interattività) Concede la possibilità di interagire ed eseguire azioni sugli eventi ricevuti tramite hook del servizio. (Non più pubblico. vso.profile
Impostazioni vso.settings Impostazioni (in modalità lettura) Concede la possibilità di leggere le impostazioni.
vso.settings_write Impostazioni (lettura e scrittura) Concede la possibilità di leggere e scrivere impostazioni. vso.settings
Simboli vso.symbols Simboli (lettura) Concede la possibilità di leggere i simboli. vso.profile
vso.symbols_write Simboli (lettura e scrittura) Concede la possibilità di leggere e scrivere simboli. vso.symbols
vso.symbols_manage Simboli (lettura, scrittura e gestione) Concede la possibilità di leggere, scrivere e gestire i simboli. vso.symbols_write
Gruppi di attività vso.taskgroups_read Gruppi di attività (lettura) Fornisce la capacità di leggere i gruppi di compiti.
vso.taskgroups_write Gruppi di compiti (lettura, creazione) Concede la possibilità di leggere e creare gruppi di attività. vso.taskgroups_read
vso.taskgroups_manage Gruppi di compiti (lettura, creazione e gestione) Concede la possibilità di leggere, creare e gestire gruppi di attività. vso.taskgroups_write
Team Dashboard vso.dashboards Dashboard del team (visualizzazione) Concede la possibilità di leggere le informazioni del dashboard del team.
vso.dashboards_manage Gestione dei pannelli di controllo del team Concede la possibilità di gestire le informazioni del dashboard del team. vso.dashboards
Gestione dei test vso.test Gestione dei test (leggere) Concede la possibilità di leggere piani di test, case, risultati e altri artefatti correlati alla gestione dei test. vso.profile
vso.test_write Gestione dei test (lettura e scrittura) Concede la possibilità di leggere, creare e aggiornare piani di test, case, risultati e altri artefatti correlati alla gestione dei test. vso.test
Discussioni vso.threads_full Thread delle richieste di pull Concede la possibilità di leggere e scrivere sui thread dei commenti delle richieste di pull.
Token vso.tokens Token di autorizzazione delegati Concede la possibilità di gestire i token di autorizzazione delegati agli utenti.
vso.tokenadministration Amministrazione dei token Concede la possibilità di gestire (visualizzare e revocare) i token esistenti agli amministratori dell'organizzazione.
Profilo utente vso.profile Profilo dell'utente (lettura) Concede la possibilità di leggere il profilo, gli account, le raccolte, i progetti, i team e altri artefatti dell'organizzazione di primo livello.
vso.profile_write Profilo utente (scrittura) Concede la possibilità di scrivere nel profilo. vso.profile
Gruppi di variabili vso.variablegroups_read Gruppi di variabili (lettura) Concede la possibilità di leggere gruppi di variabili.
vso.variablegroups_write Gruppi di variabili (lettura, creare) Concede la possibilità di leggere e creare gruppi di variabili. vso.variablegroups_read
vso.variablegroups_manage Gruppi di variabili (lettura, creazione e gestione) Concede la possibilità di leggere, creare e gestire gruppi di variabili. vso.variablegroups_write
Wiki vso.wiki Wiki (lettura) Concede la possibilità di leggere wiki, pagine wiki e allegati wiki. Concede inoltre la possibilità di cercare pagine wiki.
vso.wiki_write Wiki (lettura e scrittura) Concede la possibilità di leggere, creare e aggiornare wiki, pagine wiki e allegati wiki. vso.wiki
Elementi di lavoro vso.work Elementi di lavoro (consultazione) Conferisce la possibilità di leggere elementi di lavoro, lavagne, query, percorsi delle aree e delle iterazioni e altri metadati correlati al tracciamento degli elementi di lavoro. Offre inoltre la possibilità di eseguire query, cercare elementi di lavoro e ricevere notifiche sugli eventi degli elementi di lavoro tramite hook di servizio. vso.hooks_write
vso.work_write Elementi di lavoro (lettura e scrittura) Concede la possibilità di leggere, creare e aggiornare gli elementi di lavoro e le query, aggiornare i metadati della scheda, leggere i percorsi delle aree e delle iterazioni di altri metadati relativi al rilevamento degli elementi di lavoro, eseguire query e ricevere notifiche sugli eventi degli elementi di lavoro tramite hook di servizio. vso.work
vso.work_full Elementi di lavoro (completo) Concede l'accesso completo a elementi di lavoro, query, backlog, piani e metadati di tracciamento degli elementi di lavoro. Offre anche la possibilità di ricevere notifiche sugli eventi degli elementi di lavoro tramite hook di servizio. vso.work_write
Impersonificazione utente user_impersonation Impersonificazione utente Avere accesso completo alle API REST di Visual Studio Team Services. Richiedi e/o consenti questo ambito con cautela perché è molto potente!

Domande frequenti

D: È possibile usare OAuth con applicazioni per dispositivi mobili?

R: No. Azure DevOps Services supporta solo il flusso del server Web (flusso del codice di autorizzazione), che richiede l'archiviazione sicura di un segreto dell'app. Le applicazioni per dispositivi mobili non possono archiviare in modo sicuro i segreti, rendendo OAuth non adatto per gli scenari per dispositivi mobili.

Alternativa per le app per dispositivi mobili: usare i token di accesso personale per l'autenticazione dell'applicazione per dispositivi mobili.

D: OAuth funziona con tutte le API DevOps di Azure?

R: OAuth supporta le API REST e seleziona solo endpoint Git. Le API SOAP non supportano l'autenticazione OAuth.

D: Come si esegue la migrazione da Azure DevOps OAuth a Microsoft Entra ID OAuth?

R: Seguire la guida alla migrazione OAuth di Microsoft Entra ID, che include:

  • Istruzioni dettagliate sulla migrazione
  • Esempi di codice e procedure consigliate
  • Considerazioni sulla sequenza temporale per la deprecazione

D: Cosa accade all'app OAuth di Azure DevOps esistente dopo il 2026?

R: Le app OAuth esistenti di Azure DevOps smetteranno di funzionare quando il servizio verrà completamente ritirato nel 2026. Pianificare la migrazione a Microsoft Entra ID OAuth ben prima di questa scadenza.

Passo successivo

Scegliere il percorso di implementazione:

Per le nuove applicazioni:

Per le app OAuth di Azure DevOps esistenti:

Per le app esistenti che necessitano di supporto immediato: