Autorizzare l'accesso alle API REST con OAuth 2.0
Servizi di Azure DevOps
Informazioni su come autenticare gli utenti dell'app Web per l'accesso all'API REST, in modo che l'app non continui a richiedere nomi utente e password.
Nota
- Le indicazioni seguenti sono destinate agli utenti di Azure DevOps Services perché OAuth 2.0 non è supportato in Azure DevOps Server. Le librerie client sono una serie di pacchetti creati specificamente per estendere la funzionalità di Azure DevOps Server. Per gli utenti locali, è consigliabile usare librerie client, autenticazione di Windows o token di accesso personale per l'autenticazione per conto di un utente.
- Per altre informazioni, vedere l'esempio di GitHub OAuth per C#.
Informazioni su OAuth 2.0
Azure DevOps Services usa il protocollo OAuth 2.0 per autorizzare l'app per un utente e generare un token di accesso. Usare questo token quando si chiamano le API REST dall'applicazione. Quando si chiamano le API di Azure DevOps Services per tale utente, usare il token di accesso dell'utente. I token di accesso scadono, quindi aggiornano il token di accesso se scaduto.
Modelli OAuth disponibili
Importante
Quando si crea una nuova app OAuth 2.0, usare Microsoft Entra ID OAuth. Azure DevOps OAuth 2.0 è previsto per la deprecazione nel 2026. A partire da marzo 2025, verrà interrotta l'accettazione di nuove app OAuth di Azure DevOps. Per altre informazioni, vedere il post di blog.
Microsoft Entra ID OAuth
La compilazione su una nuova piattaforma può essere travolgente. In questa guida alla creazione di un'app Microsoft Entra per Azure DevOps vengono raccolti collegamenti utili che potrebbero essere utili per avviare il processo di sviluppo di app OAuth in Microsoft Entra. Per gli utenti che eseguono la migrazione da Azure DevOps OAuth a Microsoft Entra OAuth, vengono forniti suggerimenti da considerare durante il lavoro di migrazione.
Azure DevOps OAuth
Per le app esistenti, vedere la guida all'app OAuth di Azure DevOps. È anche possibile gestire le app Azure DevOps autorizzate ad accedere alle risorse.
Ambiti
Gli sviluppatori devono specificare gli ambiti richiesti dagli utenti. Gli stessi ambiti sono disponibili in entrambi i modelli OAuth. Gli ambiti seguenti sono disponibili solo tramite flussi delegati (on-behalf-of-user).
Per scoprire gli ambiti necessari per l'app, cercare sotto l'intestazione scopes
nella pagina Informazioni di riferimento sulle API per ogni API in uso.
Alcuni ambiti possono essere inclusi in altri ambiti, ad esempio include vso.code_manage
vso.code_write
. Ad esempio, molti ambiti ereditano da vso.profile
. Considerare il numero minimo di ambiti necessari quando si richiede il consenso dell'ambito agli utenti.
Nota
Gli ambiti consentono solo l'accesso alle API REST e selezionare Endpoint Git. L'accesso all'API SOAP non è supportato.
Categoria | Ambito | Nome | Descrizione | Eredita da |
---|---|---|---|---|
Sicurezza avanzata | vso.advsec |
AdvancedSecurity (lettura) | Concede la possibilità di leggere avvisi, istanze dei risultati, istanze dei risultati e istanze dei 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 (lettura) | Concede la possibilità di visualizzare attività, pool, code, agenti e processi attualmente in esecuzione o completati di recente per gli agenti. | |
vso.agentpools_manage |
Pool di agenti (lettura, gestione) | Concede la possibilità di gestire pool, code e agenti. | vso.agentpools |
|
vso.environment_manage |
Ambiente (lettura, gestione) | Concede 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. | |
Controllo | vso.auditlog |
Log di controllo (lettura) | Concede la possibilità di leggere il log di controllo agli utenti. | |
vso.auditstreams_manage |
Flussi di controllo (lettura) | Concede la possibilità di gestire i flussi di controllo agli utenti. | vso.auditlog |
|
Build | 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 (lettura) | 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) | Concede la possibilità di leggere e scrivere lo stato di commit e richiesta pull. | ||
Server connesso | vso.connected_server |
Server connesso | Concede la possibilità di accedere agli endpoint necessari da un server connesso locale. | |
Diritti | vso.entitlements |
Entitlement (lettura) | Fornisce l'accesso in sola lettura all'endpoint dei diritti di licenza per ottenere i diritti dell'account. | |
vso.memberentitlementmanagement |
Gestione MemberEntitlement (lettura) | Concede la possibilità di leggere gli utenti, le licenze e i progetti e le estensioni a cui possono accedere. | ||
vso.memberentitlementmanagement_write |
Gestione MemberEntitlement (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 (lettura) | Concede la possibilità di leggere le estensioni installate. | vso.profile |
vso.extension_manage |
Estensioni (lettura e gestione) | Concede la possibilità di installare, disinstallare ed eseguire altre azioni amministrative sulle estensioni installate. | vso.extension |
|
vso.extension.data |
Dati di estensione (lettura) | 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) | Concede la possibilità di leggere e gestire le connessioni GitHub e i dati dei repository GitHub | vso.githubconnections |
|
Grafico e identità | vso.graph |
Grafico (lettura) | Concede la possibilità di leggere le informazioni sull'appartenenza a utenti, gruppi, ambiti e gruppi. | |
vso.graph_manage |
Grafico (gestisci) | 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 |
Identità (gestione) | Concede la possibilità di leggere, scrivere e gestire identità e gruppi. | vso.identity |
|
Gruppo di computer | vso.machinegroup_manage |
Gruppo di distribuzione (lettura, gestione) | Consente di gestire gruppi di distribuzione e pool di agenti. | vso.agentpools_manage |
Marketplace | vso.gallery |
Marketplace | Concede l'accesso in lettura a elementi e editori pubblici e privati. | vso.profile |
vso.gallery_acquire |
Marketplace (acquisizione) | Concede l'accesso in lettura e la possibilità di acquisire elementi. | 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) | Concede l'accesso in lettura e la possibilità di pubblicare e gestire elementi e editori. | vso.gallery_publish |
|
Notifications | 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 (scrittura) | 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 |
Notifiche (gestione) | 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 |
Creazione di pacchetti (lettura) | Concede la possibilità di leggere feed e pacchetti. | vso.profile |
vso.packaging_write |
Creazione di pacchetti (lettura e scrittura) | Concede la possibilità di creare e leggere feed e pacchetti. | vso.packaging |
|
vso.packaging_manage |
Creazione di 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 |
Risorse della pipeline (uso) | 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_manage |
|
Progetto e team | vso.project |
Progetto e team (lettura) | Concede la possibilità 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 |
|
Versione | vso.release |
Versione (lettura) | Concede la possibilità di leggere gli artefatti della versione, incluse le versioni, le definizioni di versione e l'ambiente di rilascio. | vso.profile |
vso.release_execute |
Versione (lettura, scrittura ed esecuzione) | Concede la possibilità di leggere e aggiornare gli artefatti di versione, incluse le versioni, le definizioni di versione e l'ambiente di rilascio e la possibilità di accodare una nuova versione. | vso.release |
|
vso.release_manage |
Versione (lettura, scrittura, esecuzione e gestione) | Concede la possibilità di leggere, aggiornare ed eliminare artefatti di versione, incluse le versioni, le definizioni di versione e l'ambiente di rilascio e la possibilità di accodare e approvare una nuova versione. | vso.release_manage |
|
File protetti | 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 servizio (lettura) | Concede la possibilità di leggere gli endpoint di servizio. | vso.profile |
vso.serviceendpoint_query |
Endpoint servizio (lettura e query) | Concede la possibilità di leggere ed eseguire query sugli endpoint del servizio. | vso.serviceendpoint |
|
vso.serviceendpoint_manage |
Endpoint servizio (lettura, query e gestione) | Concede la possibilità di leggere, eseguire query e gestire gli endpoint di servizio. | vso.serviceendpoint_query |
|
Hook del servizio | vso.hooks |
Hook di servizio (lettura) | Concede la possibilità di leggere sottoscrizioni e metadati dell'hook del servizio, inclusi eventi supportati, consumer e azioni. (Non più pubblico. | vso.profile |
vso.hooks_write |
Hook del servizio (lettura e scrittura) | Concede la possibilità di creare e aggiornare sottoscrizioni hook del servizio e leggere metadati, inclusi eventi supportati, consumer e azioni. (Non più pubblico. | vso.hooks |
|
vso.hooks_interact |
Hook del servizio (interazione) | Concede la possibilità di interagire ed eseguire azioni sugli eventi ricevuti tramite hook del servizio. (Non più pubblico. | vso.profile |
|
Impostazioni | vso.settings |
Impostazioni (lettura) | Concede la possibilità di leggere le impostazioni. | |
vso.settings_write |
Impostazioni (lettura e scrittura) | Concede la possibilità di creare e leggere le impostazioni. | ||
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) | Concede la possibilità di leggere i gruppi di attività. | |
vso.taskgroups_write |
Gruppi di attività (lettura, creazione) | Concede la possibilità di leggere e creare gruppi di attività. | vso.taskgroups_read |
|
vso.taskgroups_manage |
Gruppi di attività (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 (lettura) | Concede la possibilità di leggere le informazioni del dashboard del team. | |
vso.dashboards_manage |
Dashboard del team (gestione) | Concede la possibilità di gestire le informazioni del dashboard del team. | vso.dashboards |
|
Gestione dei test | vso.test |
Gestione dei test (lettura) | 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 |
|
Thread | vso.threads_full |
Thread di richiesta pull | Concede la possibilità di leggere e scrivere per eseguire il pull dei thread di commento delle richieste. | |
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 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, creazione) | 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 (lettura) | Concede la possibilità di leggere elementi di lavoro, query, lavagne, percorsi di aree e iterazioni e altri metadati correlati al rilevamento 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 le iterazioni percorsi di altri metadati correlati di 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 a elementi di lavoro, query, backlog, piani e metadati di rilevamento degli elementi di lavoro. Offre anche la possibilità di ricevere notifiche sugli eventi degli elementi di lavoro tramite hook del servizio. | vso.work_write |
|
Rappresentazione utente | user_impersonation |
Rappresentazione 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 l'app per telefoni cellulari?
R: No. Azure DevOps Services supporta solo il flusso del server Web, quindi non è possibile implementare OAuth, perché non è possibile archiviare in modo sicuro il segreto dell'app.
D: È possibile usare OAuth con gli endpoint SOAP e le API REST?
R: No. OAuth è supportato solo nelle API REST.