Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
È consigliabile usare Microsoft Entra ID OAuth 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 e 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 i passaggi seguenti:
- Registrazione dell'app: registrare l'applicazione con il provider OAuth.
- Autorizzazione utente: concedere all'app l'autorizzazione per accedere ai dati utente.
- Scambio di token: ricevere un token di accesso per effettuare chiamate API.
- Accesso api: usare il token per le richieste api REST autenticate.
- Aggiornamento del token: aggiornare i token scaduti per mantenere l'accesso.
Opzioni di implementazione di OAuth
Scegliere l'implementazione OAuth appropriata in base alle esigenze dell'applicazione.
Microsoft Entra ID OAuth (scelta consigliata)
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 senza problemi con l'infrastruttura esistente di Microsoft Entra ID.
- Sicurezza avanzata: le funzionalità di sicurezza avanzate includono l'accesso condizionale di Microsoft Entra e l'autenticazione a più fattori.
- Supporto futuro: piattaforma gestita e supportata attivamente.
- Identità unificata: esperienza single sign-on nei servizi Microsoft.
Introduzione: seguire la guida OAuth per Microsoft Entra ID per informazioni dettagliate sull'implementazione e indicazioni sulla migrazione.
Azure DevOps OAuth (obsoleta)
Avvertimento
Azure DevOps OAuth è deprecato. Le nuove registrazioni di app non vengono più accettate a partire da aprile 2025. Il servizio è programmato per la disattivazione completa nel 2026. Eseguire la migrazione di applicazioni esistenti a Microsoft Entra ID OAuth.
Per le applicazioni OAuth di Azure DevOps esistenti:
- Per informazioni dettagliate sull'implementazione corrente, vedere la guida OAuth di Azure DevOps .
- Pianificare la migrazione a Microsoft Entra ID OAuth prima del 2026.
- Gestire le autorizzazioni dell'app esistenti in base alle esigenze.
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_manageincludevso.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.
Trova gli ambiti obbligatori
Per determinare gli ambiti necessari per l'applicazione:
- Controllare la documentazione di riferimento dell'API per ogni endpoint che si prevede di usare.
- Cercare il
scopesheader in ogni pagina dell'API. - 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 |
Sicurezza avanzata (lettura) | Sì | Concede la possibilità di leggere avvisi, istanze di risultati e istanze di analisi. | |
vso.advsec_write |
Sicurezza avanzata (lettura e scrittura) | Sì | Concede la possibilità di caricare analisi in serif. | vso.advsec |
|
vso.advsec_manage |
Sicurezza avanzata (lettura, scrittura e gestione) | Sì | Concede la possibilità di caricare analisi in serif. | vso.advsec_write |
|
| Pool di agenti | vso.agentpools |
Pool di agenti (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 e gestione) | Sì | Offre la possibilità di gestire gruppi, code e agenti. | vso.agentpools |
|
vso.environment_manage |
Ambiente (lettura e gestione) | Sì | Dà la possibilità di gestire pool, code, agenti e ambienti. | vso.agentpools_manage |
|
| Analytics | vso.analytics |
Analisi (lettura) | Concede la possibilità di eseguire query sui dati di analisi. | ||
| Auditing | vso.auditlog |
Log di controllo (lettura) | Concede la possibilità di leggere il log di controllo agli utenti. | ||
vso.auditstreams_manage |
Flussi di controllo (lettura) | Sì | 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) | Sì | Concede la possibilità di accedere agli artefatti di compilazione, inclusi i risultati di compilazione, le definizioni e le richieste. Concede inoltre la possibilità di accodare una compilazione, aggiornare le proprietà di compilazione e 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) | Sì | Concede la possibilità di leggere, aggiornare ed eliminare il codice sorgente e di 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 ricevere notifiche sugli eventi di controllo della versione tramite hook del servizio. | vso.code |
|
vso.code_manage |
Codice (lettura, scrittura e gestione) | Sì | 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) | Sì | 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) | Concede la possibilità di leggere e scrivere lo stato dei commit e delle pull request. | |||
| Server connesso | vso.connected_server |
Server connesso | Concede la possibilità di accedere agli endpoint necessari da un server connesso locale. | ||
| Diritti | vso.entitlements |
Entitlements (lettura) | Concede l'accesso in sola lettura agli endpoint entitlement delle licenze per ottenere i diritti dell'account. | ||
vso.memberentitlementmanagement |
Gestione dei diritti dei membri (lettura) | Concede la possibilità di leggere gli utenti, le licenze e i progetti e le estensioni a cui possono accedere. | |||
vso.memberentitlementmanagement_write |
Gestione dei diritti dei membri (scrittura) | Sì | Concede la possibilità di gestire gli utenti e le relative licenze e i progetti e le estensioni a cui possono accedere. | vso.memberentitlementmanagement |
|
| Extensions | vso.extension |
Estensioni (in lettura) | Concede la possibilità di leggere le estensioni installate. | vso.profile |
|
vso.extension_manage |
Estensioni (leggere e gestire) | Sì | 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 (lettura) | Concede la possibilità di leggere le connessioni GitHub e i dati dei repository GitHub. | ||
vso.githubconnections_manage |
Connessioni GitHub (lettura e gestione) | Sì | Concede la possibilità di leggere e gestire le connessioni GitHub e i dati dei repository GitHub. | vso.githubconnections |
|
| Grafo 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) | Sì | Concede la possibilità di leggere informazioni su utenti, gruppi, ambito e appartenenza a gruppi, aggiungere utenti e 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à | Sì | Concede la possibilità di leggere, scrivere e gestire identità e gruppi. | vso.identity |
|
| Gruppo di computer | vso.machinegroup_manage |
Gruppo di distribuzione (lettura, gestione) | Sì | Concede la possibilità di gestire il gruppo di distribuzione e i pool di agenti. | vso.agentpools_manage |
| 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) | Sì | Concede l'accesso in lettura e la possibilità di caricare, aggiornare e condividere elementi. | vso.gallery |
|
vso.gallery_manage |
Marketplace (gestisci) | Sì | Fornisce l'accesso in lettura e la possibilità di pubblicare e gestire elementi, oltre a gestire gli editori. | vso.gallery_publish |
|
| Notifications | vso.notification |
Notifiche (lettura) | Concede l'accesso in lettura alle sottoscrizioni e ai metadati degli eventi, inclusi i valori dei campi filtrabili. | vso.profile |
|
vso.notification_write |
Notifiche (scrivere) | Concede 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 | Concede 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) | Concede l'accesso ai log di diagnostica correlati alle notifiche e concede la possibilità 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) | Sì | Concede la possibilità di creare e leggere feed e pacchetti. | vso.packaging |
|
vso.packaging_manage |
Gestione dei pacchetti (lettura, scrittura e gestione) | Sì | Concede la possibilità di creare, leggere, aggiornare ed eliminare feed e pacchetti. | vso.packaging_write |
|
| Risorse della pipeline | vso.pipelineresources_use |
Risorse della pipeline (uso) | Sì | 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) | Sì | 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 (leggere, scrivere e gestire) | Sì | Concede la possibilità di creare, leggere, aggiornare ed eliminare progetti e team. | vso.project_write |
|
| Rilascio | vso.release |
Rilascio (lettura) | Concede la possibilità di leggere gli artefatti della versione, incluse le versioni, le definizioni di versione e l'ambiente di distribuzione. | vso.profile |
|
vso.release_execute |
Rilascio (lettura, scrittura ed esecuzione) | Sì | Concede la possibilità di leggere e aggiornare gli artefatti di versione, incluse le versioni, le definizioni di versione e l'ambiente di rilascio. Concede inoltre la possibilità di accodare una nuova versione. | vso.release |
|
vso.release_manage |
Versione (lettura, scrittura, esecuzione e gestione) | Sì | Concede la possibilità di leggere, aggiornare ed eliminare artefatti di versione, incluse le versioni, le definizioni di versione e l'ambiente di rilascio. Conferisce inoltre la possibilità di accodare e approvare un nuovo rilascio. | vso.release_execute |
|
| Protezione file | vso.securefiles_read |
Proteggi i file (Accesso in lettura) | Sì | Concede la possibilità di leggere file protetti. | |
vso.securefiles_write |
Proteggere i file (lettura e creazione) | Sì | Concede la possibilità di leggere e creare file sicuri. | vso.securefiles_read |
|
vso.securefiles_manage |
Proteggere i file (lettura, creazione e gestione) | Sì | Concede la possibilità di leggere, creare e gestire file sicuri. | vso.securefiles_write |
|
| Security | vso.security_manage |
Sicurezza (gestione) | Sì | Concede la possibilità di leggere, scrivere e gestire le autorizzazioni di sicurezza. | |
| Connessioni al servizio | vso.serviceendpoint |
Endpoint di 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) | Sì | Concede la possibilità di leggere, eseguire query e gestire gli endpoint di servizio. | vso.serviceendpoint_query |
|
| Ganci 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 |
||
| Settings | 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 attività (lettura e creazione) | Concede la possibilità di leggere e creare gruppi di attività. | vso.taskgroups_read |
||
vso.taskgroups_manage |
Gruppi di attività (lettura, creazione e gestione) | Sì | Concede la possibilità di leggere, creare e gestire gruppi di attività. | vso.taskgroups_write |
|
| Dashboard del team | 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 |
||
| Threads | vso.threads_full |
Thread delle richieste di pull | Concede la possibilità di leggere e scrivere sui thread dei commenti delle richieste di pull. | ||
| Tokens | vso.tokens |
Token di autorizzazione delegata | Sì | Concede la possibilità di gestire i token di autorizzazione delegati agli utenti. | |
vso.tokenadministration |
Amministrazione dei token | Sì | 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 e creazione) | Concede la possibilità di leggere e creare gruppi di variabili. | vso.variablegroups_read |
||
vso.variablegroups_manage |
Gruppi di variabili (lettura, creazione e gestione) | Sì | 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) | Concede la possibilità di leggere elementi di lavoro, query, schede, percorsi di aree e iterazioni e altri metadati correlati al tracciamento degli elementi di lavoro. Concede inoltre la possibilità di eseguire query, cercare elementi di lavoro e ricevere notifiche sugli eventi degli elementi di lavoro tramite hook del servizio. | vso.hooks_write |
|
vso.work_write |
Elementi di lavoro (lettura e scrittura) | Concede la possibilità di leggere, creare e aggiornare elementi di lavoro e query, aggiornare i metadati della scheda, l'area di lettura e i percorsi di iterazione e altri metadati correlati al rilevamento degli elementi di lavoro, eseguire query e ricevere notifiche sugli eventi degli elementi di lavoro tramite hook del servizio. | vso.work |
||
vso.work_full |
Elementi di lavoro (completo) | Concede l'accesso completo agli elementi di lavoro, query, backlog, piani di lavoro e metadati di tracciamento degli elementi di lavoro. Concede inoltre la possibilità di poter ricevere notifiche sugli eventi relativi agli elementi di lavoro tramite hook di servizio. | vso.work_write |
||
| Impersonificazione utente | user_impersonation |
Impersonificazione utente | Sì | Concede l'accesso completo alle API REST di Visual Studio Team Services. Richiedere o fornire il consenso a questo ambito con cautela perché è molto potente. |
Domande frequenti
Q. È possibile usare OAuth con applicazioni per dispositivi mobili?
A. 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, che rendono 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.
Q. OAuth funziona con tutte le API di Azure DevOps?
A. OAuth supporta le API REST e seleziona solo endpoint Git. Le API SOAP non supportano l'autenticazione OAuth.
Q. Come si esegue la migrazione da Azure DevOps OAuth a Microsoft Entra ID OAuth?
A. Seguire la guida alla migrazione OAuth di Microsoft Entra ID, che include:
- Istruzioni dettagliate per la migrazione.
- Esempi di codice e procedure consigliate.
- Considerazioni sulla sequenza temporale per la deprecazione.
Q. Cosa accade all'app OAuth di Azure DevOps esistente dopo il 2026?
A. Le app OAuth di Azure DevOps esistenti smetteranno di funzionare quando il servizio sarà ritirato completamente nel 2026. Pianificare la migrazione a Microsoft Entra ID OAuth ben prima di questa scadenza.
Scegliere il percorso di implementazione
- Per le nuove applicazioni:Compilare con Microsoft Entra ID OAuth
- Per le app OAuth di Azure DevOps esistenti:Pianificare la migrazione a Microsoft Entra ID
- Per le app esistenti che necessitano di supporto immediato:documentazione di Azure DevOps OAuth