Usare i token di accesso personali


Dopo aver creato l'account di accesso alla pagina, è possibile usarlo ovunque siano necessarie le credenziali utente per l'autenticazione in Azure DevOps.

Notifiche

Gli utenti ricevono due notifiche durante la durata di un token di accesso, una al momento della creazione e l'altra sette giorni prima della scadenza.

Dopo aver creato un pat, si riceve una notifica simile all'esempio seguente.

Notifica creata da PAT

Sette giorni prima della scadenza del contratto di licenza, si riceve una notifica simile all'esempio seguente.

NOTIFICA PAT prossima alla scadenza

Notifica imprevista

Se si riceve una notifica PAT imprevista, un amministratore o uno strumento potrebbe aver creato un token di accesso per conto dell'utente. Vedere gli esempi seguenti.

  • Quando ci si connette a un repository Git Azure DevOps tramite git.exe. crea un token con un nome visualizzato come "git: https://MyOrganization.visualstudio.com/ on MyMachine".
  • Quando l'utente o un amministratore configura la distribuzione di un'app Web Servizio app di Azure, crea un token con un nome visualizzato come "Hook del servizio: : Servizio app di Azure: : Distribuire l'app Web".
  • Quando l'utente o un amministratore configura il test di carico Web, come parte di una pipeline, crea un token con un nome visualizzato come "WebAppLoadTestCDIntToken".
  • Quando viene Microsoft Teams un'estensione di messaggistica di integrazione di , viene creato un token con un nome visualizzato, ad esempio "Microsoft Teams Integration".

Se si ritiene che un pat esista per errore, è consigliabile revocare il pat. Modificare quindi la password. Come utente 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 pat

Il token è l'identità dell'utente e rappresenta l'utente quando viene usato. Trattare e usare un pat come la password.

Le interazioni git richiedono un nome utente, che può essere qualsiasi elemento tranne la stringa vuota. Pat viene usato come password. È anche necessario codificare in Base64 il nome utente e PAT per usarlo con l'autenticazione http di base. In Linux o macOS, in Bash è possibile immettere:

MY_PAT=yourPAT # replace "yourPAT" with your actual PAT
B64_PAT=$(printf "%s"":$MY_PAT" | base64)
git -c http.extraHeader="Authorization: Basic ${B64_PAT}" clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName 

Suggerimento

Per i repository esistenti, se è già stata aggiunta l'origine 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

In Windows è possibile eseguire un'operazione simile in PowerShell:

$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 mantenere il token più sicuro, usare i gestori di credenziali in modo che non sia necessario immettere le credenziali ogni volta. È consigliabile usare il gestore delle credenziali seguente:

Usare un paterno nel codice

Vedere l'esempio seguente che ottiene un elenco di compilazioni tramite curl.


curl -u :{PAT} https://dev.azure.com/{organization}/_apis/build-release/builds

Se si vuole fornire il pat tramite un'intestazione HTTP, convertirlo prima in una stringa Base64 (l'esempio seguente illustra come eseguire la conversione in Base64 usando C#). La stringa risultante può quindi essere fornita come intestazione HTTP nel formato seguente:

Authorization: Basic BASE64_USERNAME_PAT_STRING

Qui è in C# usando la classe HttpClient.

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 le variabili, aggiungere $ all'inizio della stringa, come 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, è il momento di passare dall'autenticazione di base a OAuth.

Se si abilita l'autenticazione di base di IIS per TFS, i file PAT non sono validi. Per altre informazioni, vedere Using IIS Basic Authentication with TFS on-premises (Uso dell'autenticazionedi base di IIS con TFS in locale).

Per altri esempi su come usare i pat, vedere Gestione credenziali Git,API REST,NuGet in un Mac,Client di creazione report o Introduzione all'interfaccia della riga di comando di Azure DevOps.

Modificare un pat

È possibile rigenerare o estendere un pat e modificarne l'ambito.

Nota

Per abilitare la nuova interfaccia utente per la pagina Account manager, vedere Gestire o abilitare le funzionalità.

  1. Dal home page, aprire le impostazioni utente e quindi selezionare Profilo.

    Mio profilo Team Services, pagina Anteprima, modificare un pat.

  2. In Sicurezza selezionare Token di accesso personali. Selezionare il token per cui si vuole modificare e quindi selezionare Modifica.

    Selezionare Modifica per modificare PAT

  3. Modificare il nome del token, l'organizzazione a cui si applica, la scadenza del token o l'ambito di accesso associato al token e quindi selezionare Salva.

    Modificare e salvare pat

Revocare un pat

È possibile revocare un pat in qualsiasi momento, per vari motivi.

Nota

Per abilitare la nuova interfaccia utente per la pagina Account manager, vedere Gestire o abilitare le funzionalità.

  1. Dal home page, aprire le impostazioni utente e quindi selezionare Profilo.

    Mio profilo Team Services, pagina Anteprima, revocare un pat.

  2. In Sicurezza selezionare Token di accesso personali. Selezionare il token per cui si vuole revocare l'accesso e quindi selezionare Revoca.

    Revocare un token o tutti i token

  3. Selezionare Revoca nella finestra di dialogo di conferma.

    Confermare la revoca

Domande frequenti

D: Esiste un modo per rinnovare un pat-in tramite l'API REST?

A: Sì, è possibile rinnovare, gestire e creare pacchetti PAT usando le API di gestione del ciclo di vita di PAT. Per altre informazioni sul rinnovo, la rigenerazione e la rotazione dei pat, vedere le domande frequenti.

D: È possibile usare l'autenticazione di base con tutte Azure DevOps API REST?

R: No. È possibile usare l'autenticazione di base con la maggior parte di essi, ma le organizzazioni e i profili supportano solo OAuth. Per altre informazioni, vedere Gestire i pat tramite l'API REST.

D: Cosa accade se si archivia accidentalmente pat in un repository pubblico GitHub?

A: Azure DevOps analizza i file PAT archiviati in repository pubblici in GitHub. Quando viene trovato un token persa, si invia immediatamente una notifica di posta elettronica dettagliata al proprietario del token e si registra un evento nel logdi controllo dell'organizzazione Azure DevOps. Si consiglia agli utenti interessati di mitigare immediatamente la vulnerabilità ruotando o revocando il pat persa.

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2017

Un token di accesso personale (PAT) viene usato come password alternativa per l'autenticazione Azure DevOps. Informazioni su come creare, usare, modificare e revocare i pat per Azure DevOps.

Se si lavora all'interno di strumenti Microsoft, l'account Microsoft (MSA) o Azure Active Directory (Azure AD) è un approccio accettabile e ben supportato. Tuttavia, se si usano strumenti di terze parti che non supportano gli account Microsoft o Azure AD o non si vogliono fornire le credenziali primarie per lo strumento, è possibile usare i pat per limitare il rischio.

I pacchetti PAT sono facili da creare quando sono necessari e possono essere revocati quando non sono necessari. Per configurare i pat per gli strumenti non Microsoft, usare i gestori di 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 affidabile, i pacchetti PAT sono una semplice alternativa. A meno che gli utenti non utilizzino un gestore di credenziali, devono immettere le proprie credenziali ogni volta.

È possibile creare e gestire i pat tramite uno dei modi seguenti:

  • l'interfaccia utente nelle impostazioni utente, descritta in dettaglio in questo articolo
  • tramite il ciclo di vita di PAT API Gestione

Importante

Per le organizzazioni supportate da Azure Active Directory, l'utente ha 90 giorni per accedere con il nuovo account di accesso, altrimenti viene considerato inattivo. Per altre informazioni, vedere Frequenza di accesso utente per l'accesso condizionale.

Creare un pat

Nota

Per abilitare la nuova interfaccia utente per la pagina Account manager, vedere Gestire o abilitare le funzionalità.

  1. Accedere all'organizzazione in Azure DevOps ( https://dev.azure.com/{yourorganization} )

  2. Dal home page, aprire le impostazioni utente e quindi selezionare Token di accesso personali.

    Selezionare Token di accesso personali

  3. Selezionare quindi + Nuovo token.

    Selezionare Nuovo token da creare

  4. Assegnare un nome al token, selezionare l'organizzazione in cui si vuole usare il token e quindi scegliere una durata per il token.

    Immettere le informazioni di base sul token

  5. 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 Azure DevOps Services, limitare l'ambito del token ai pool di agenti (gestione in lettura). Per leggere gli eventi del log di controllo e gestire ed eliminare flussi, selezionare Lettura log di controlloe quindi crea.

    Selezionare gli ambiti per il pat

  6. Al termine, assicurarsi di copiare il token. Per motivi di sicurezza, non verrà più visualizzato. Usare questo token come password.

    Copiare il token negli Appunti

  1. Accedere al portale Web ( https://{server}:8080/tfs/ ).

  2. Dal home page aprire il profilo. Passare ai dettagli di sicurezza.

    Home page, aprire il profilo, passare a Sicurezza

  3. Creare un token di accesso personale.

    Aggiungere un token di accesso personale

  4. Assegnare un nome al token. Selezionare una durata per il token.

    Se sono disponibili più organizzazioni, è anche possibile selezionare l'organizzazione in cui si vuole usare il token.

    Assegnare un nome al token e selezionare una durata. Se si Azure DevOps Services, selezionare un account per il token

  5. 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, limitare l'ambito del token ai pool di agenti (lettura, gestione).

  6. Al termine, assicurarsi di copiare il token. Per motivi di sicurezza, non verrà più visualizzato. Usare questo token come password. Selezionare Chiudi.

    Usare un token come password per gli strumenti o le app Git