Usare i token di accesso personale
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
È possibile usare un token di accesso personale come password alternativa per l'autenticazione in Azure DevOps. In questo articolo viene illustrato come creare, usare, modificare e revocare le API per Azure DevOps.
Informazioni sui token di accesso personale
Un token di accesso personale contiene le credenziali di sicurezza per Azure DevOps. Un token di accesso personale identifica l'utente, le organizzazioni accessibili e gli ambiti di accesso. Di conseguenza, sono fondamentali come le password, quindi è consigliabile gestirli allo stesso modo.
Se si usano gli strumenti Microsoft, l'uso dell'account Microsoft (account del servizio gestito) o di Azure Active Directory (Azure AD) rappresenta un approccio accettabile e ben supportato. Tuttavia, se si usano strumenti di terze parti che non supportano account Microsoft o Azure AD, oppure non si vogliono inserire le credenziali primarie nello strumento, usare i token di accesso personale per limitare il rischio.
È possibile creare e gestire i token di accesso personale tramite uno dei modi seguenti:
- l'interfaccia utente nelle impostazioni utente, descritta in dettaglio in questo articolo
- tramite l'API di gestione del ciclo di vita pat
Per configurare le connessioni CONT per gli strumenti non Microsoft, usare i gestori delle credenziali Git o crearli manualmente. È consigliabile esaminare le linee guida per l'autenticazione per scegliere il meccanismo di autenticazione corretto. Per i progetti più piccoli che richiedono una soluzione meno solida, i token di accesso personale sono un'alternativa semplice. A meno che gli utenti usino Gestione credenziali, devono immettere le credenziali ogni volta.
Creare un token di accesso personale
Nota
Le immagini visualizzate dal portale Web possono differire dalle immagini visualizzate in questo articolo. Queste differenze derivano dagli aggiornamenti apportati alle funzionalità di anteprima di Azure DevOps o abilitate. È stata abilitata la funzionalità Nuova pagina di gestione account . Le funzionalità di base disponibili per l'utente rimangono invariate, a meno che non venga indicato in modo esplicito.
Accedere all'organizzazione (
https://dev.azure.com/{yourorganization}
).Nella home page aprire le impostazioni
utente e selezionare Token di accesso personali.
Selezionare + Nuovo token.
Assegnare un nome al token, selezionare l'organizzazione in cui si vuole usare il token e quindi impostare il token per scadere automaticamente dopo un numero di giorni impostato.
Selezionare gli ambiti per questo token da autorizzare per le attività specifiche.
Ad esempio, per creare un token per consentire a un agente di compilazione e versione di eseguire l'autenticazione a Azure DevOps Services, limitare l'ambito del token ai pool di agenti (gestione & lettura). Per leggere gli eventi del log di controllo e gestire ed eliminare i flussi, selezionare Lettura log di controllo e quindi selezionare Crea.
Nota
È possibile che la creazione di token di accesso personale con ambito completo sia limitata. In questo caso, l'amministratore di Azure DevOps in Azure AD ha abilitato un criterio che limita l'utente a un set di ambiti definito specifico. Per altre informazioni, vedere Manage PAT with policies/Restrict creation of full-scoped PATs(Gestire le api CON ambito completo/Limitare la creazione di indirizzi PAT con ambito completo). Per un pat personalizzato definito, l'ambito necessario per l'accesso all'API governance dei componenti,
vso.governance
, non è selezionabile nell'interfaccia utente.Al termine, copiare il token e archiviarlo in una posizione sicura. Per la sicurezza, non verrà più visualizzata.
Avviso
Trattare e usare un token di accesso personale come la password e mantenerlo segreto.
Accedere al portale Web (
https://{server}:8080/tfs/
).Dalla home page aprire il profilo. Passare ai dettagli di sicurezza.
Creare un token di accesso personale.
Assegnare un nome al token. Selezionare un ciclo di vita per il token.
Se si dispone di più organizzazioni, è anche possibile selezionare l'organizzazione in cui si vuole usare il token.
Selezionare gli ambiti per questo token da autorizzare per le attività specifiche.
Ad esempio, per creare un token per abilitare un agente di compilazione e rilascio per l'autenticazione, limitare l'ambito del token ai pool di agenti (lettura, gestione).
Al termine, assicurarsi di copiare il token. Per la sicurezza, non verrà più visualizzata. Usare questo token come password. Selezionare Chiudi.
Usare il token di accesso personale ovunque siano necessarie le credenziali utente per l'autenticazione in Azure DevOps.
Importante
Per le organizzazioni supportate da Azure Active Directory, sono disponibili 90 giorni per accedere con il nuovo token di accesso personale, altrimenti è considerato inattivo. Per altre informazioni, vedere Frequenza di accesso utente per l'accesso condizionale.
Notifiche
Gli utenti ricevono due notifiche durante la durata di un token di accesso personale, una al momento della creazione e l'altra sette giorni prima della scadenza.
Dopo aver creato un token di accesso personale, si riceve una notifica simile all'esempio seguente. Questa notifica conferma che il token di accesso personale è stato aggiunto all'organizzazione.
L'immagine seguente mostra un esempio della notifica di sette giorni prima della scadenza del pat.
Per altre informazioni, vedere Configurare un server SMTP e personalizzare la posta elettronica per gli avvisi e le richieste di feedback.
Notifica imprevista
Se si riceve una notifica pat imprevista, un amministratore o uno strumento potrebbe aver creato un pat per conto dell'utente. Vedere gli esempi seguenti.
- Quando ci si connette a un repository Git di Azure DevOps tramite git.exe. crea un token con un nome visualizzato, ad esempio "git:
https://MyOrganization.visualstudio.com/
in MyMachine". - Quando l'utente o un amministratore configura una distribuzione di app Web Servizio app di Azure, crea un token con un nome visualizzato, ad esempio "Hook del servizio: : Servizio app di Azure: : Distribuire l'app Web".
- Quando l'utente o un amministratore configura test di carico Web come parte di una pipeline, crea un token con un nome visualizzato, ad esempio "WebAppLoadTestCDIntToken".
- Quando viene configurata un'estensione di messaggistica di integrazione di Microsoft Teams, viene creato un token con un nome visualizzato, ad esempio "Integrazione di Microsoft Teams".
Avviso
Se si ritiene che un PAT esista in errore, è consigliabile revocare il pat. Modificare quindi la password. In qualità di utente di Azure AD, rivolgersi all'amministratore per verificare se l'organizzazione è stata usata da un'origine o da una posizione sconosciuta. Vedere anche le domande frequenti sull'archiviazione accidentale di un pat in un repository GitHub pubblico.
Usare un token di accesso personale
Il PAT è la tua identità e ti rappresenta quando lo usi, proprio come una password.
Git
Le interazioni Git richiedono un nome utente, che può essere qualsiasi elemento tranne la stringa vuota.
Per usare un pat con l'autenticazione di base HTTP, usare Base64-encode
per e $MyPat
, incluso nel blocco di codice seguente.
In PowerShell immettere il codice seguente.
$MyPat = 'yourPAT'
$B64Pat = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("`:$MyPat"))
git -c http.extraHeader="Authorization: Basic $B64Pat" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
Per proteggere il token, usare gli strumenti di gestione delle credenziali in modo da non dover immettere le credenziali ogni volta. È consigliabile Usare Git Credential Manager. Git per Windows è obbligatorio.
Repos esistenti
Per i repository esistenti, se l'origine è già stata aggiunta usando il nome utente, eseguire prima il comando seguente.
git remote remove origin
In caso contrario, eseguire il comando seguente.
git remote add origin https://<PAT>@<company_machineName>.visualstudio.com:/<path-to-git-repo> path to git repo = <project name>/_git/<repo_name> git push -u origin --all
Usare un pat nel codice
È possibile usare un pat nel codice.
Se si desidera specificare il PAT tramite un'intestazione HTTP, convertirla prima in una stringa Base64. Nell'esempio seguente viene illustrato come convertire in Base64 usando C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
La stringa risultante può quindi essere fornita come intestazione HTTP nel formato seguente.
Nell'esempio seguente viene usata la classe HttpClient in C#.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Suggerimento
Quando si usano variabili, aggiungere un oggetto $
all'inizio della stringa, ad esempio nell'esempio seguente.
public static async void GetBuilds()
{
try
{
var personalaccesstoken = "PATFROMWEB";
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(
new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
Convert.ToBase64String(
System.Text.ASCIIEncoding.ASCII.GetBytes(
string.Format("{0}:{1}", "", personalaccesstoken))));
using (HttpResponseMessage response = client.GetAsync(
$"https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0").Result)
{
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
Quando il codice funziona, è un buon momento per passare dall'autenticazione di base a OAuth.
Per altre informazioni ed esempi di come usare le API, vedere gli articoli seguenti:
- Gestioni credenziali Git
- API REST
- NuGet in un Mac
- Client di creazione di report
- Introduzione all'interfaccia della riga di comando di Azure DevOps.
Se si abilita l'autenticazione di base DI IIS per TFS, le API non sono valide. Per altre informazioni, vedere Uso dell'autenticazione di base IIS con TFS locale.
Modificare un PAT
È possibile rigenerare o estendere un PAT e modificare l'ambito. Dopo la rigenerazione, il PAT precedente non è più autorizzato.
Nella home page aprire le impostazioni utente e quindi selezionare Profilo.
In Sicurezza selezionare Token di accesso personale. Selezionare il token che si vuole modificare e quindi Modificare.
Modificare il nome del token, l'organizzazione a cui si applica, la scadenza del token o l'ambito dell'accesso associato al token e quindi selezionare Salva.
Revocare un PAT
È possibile revocare un PAT in qualsiasi momento, per vari motivi.
Nella home page aprire le impostazioni utente e quindi selezionare Profilo.
In Sicurezza selezionare Token di accesso personale. Selezionare il token per il quale si vuole revocare l'accesso e quindi selezionare Revoca.
Selezionare Revoca nella finestra di dialogo di conferma.
Articoli correlati
- Informazioni sulla sicurezza, l'autenticazione e l'autorizzazione
- Autorizzazioni predefinite e accesso per Azure DevOps
- Revocare le IP utente (per gli amministratori)
Domande frequenti
D: Cosa accade a un pat se un account utente è disabilitato?
R: una volta rimosso un utente da Azure DevOps, il PAT viene invalidato entro 1 ora. Se l'organizzazione è connessa ad Azure Active Directory (Azure AD), il pat viene invalidato anche in Azure AD, come appartiene all'utente. È consigliabile che l'utente ruota il pat a un altro account utente o di servizio per mantenere in esecuzione i servizi.
D: È possibile rinnovare un pat tramite l'API REST?
R: Sì, è possibile rinnovare, gestire e creare le API di gestione del ciclo di vita PAT. Per altre informazioni, vedere Gestire le API REST con l'API REST e le domande frequenti.
D: È possibile usare l'autenticazione di base con tutte le API REST di Azure DevOps?
R: No. È possibile usare l'autenticazione di base con la maggior parte delle API REST di Azure DevOps, ma le organizzazioni e i profili supportano solo OAuth. Per altre informazioni, vedere Gestire le API REST.
D: Cosa accade se si controlla accidentalmente il pat in un repository pubblico in GitHub?
R: Azure DevOps esegue l'analisi delle API archiviate nei repository pubblici in GitHub. Quando si trova un token persa, viene immediatamente inviata una notifica di posta elettronica dettagliata al proprietario del token e si registra un evento nel log di controllo dell'organizzazione Azure DevOps. A meno che non sia stato disabilitato il criterio Token di accesso personale revocato automaticamente, viene revocato immediatamente il PAT rilevato. È consigliabile incoraggiare gli utenti interessati a attenuare immediatamente revocando il token rilevato e sostituendolo con un nuovo token.
Per altre informazioni, vedere Revoca delle API perse automaticamente.
D: È possibile usare un token di accesso personale come ApiKey per pubblicare pacchetti NuGet in un feed di Elementi di Azure usando la riga di comando dotnet/nuget.exe?
R: No. Gli artefatti di Azure non supportano il passaggio di un token di accesso personale come ApiKey. Quando si usa un ambiente di sviluppo locale, è consigliabile installare il provider di credenziali di Elementi di Azure per eseguire l'autenticazione con Gli artefatti di Azure. Per altre informazioni, vedere gli esempi seguenti: dotnet, NuGet.exe. Se si desidera pubblicare i pacchetti usando Azure Pipelines, usare l'attività NuGet Authentication per eseguire l'autenticazione con l'esempio di feed.
D: Perché il mio PAT è stato interrotto?
R: L'autenticazione PAT richiede di accedere regolarmente ad Azure DevOps usando il flusso di autenticazione completo. Una volta ogni 30 giorni è sufficiente per molti, ma potrebbe essere necessario accedere più spesso rispetto a quello a seconda della configurazione di Azure Active Directory. Se il pat viene interrotto, provare prima di tutto ad accedere all'organizzazione, assicurandosi che venga eseguita la richiesta di autenticazione completa. Se il PAT non funziona ancora dopo, verificare se il PAT è scaduto.