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 Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Un token di accesso personale funge da password alternativa per l'autenticazione in Azure DevOps. Questo token di accesso personale identifica l'utente e determina l'accessibilità e l'ambito di accesso. Trattare le reti PAT con lo stesso livello di cautela delle password.
Attenzione
Evitare l'uso dei Personal Access Tokens (PAT) quando è disponibile un metodo di autenticazione più sicuro. I PAT comportano rischi di sicurezza intrinseci perché sono credenziali di lunga durata che possono essere divulgate, rubate o usate in modo improprio. Usare i token di Microsoft Entra, le identità gestite o i principali di servizio, ove possibile.
Quando si usano gli strumenti Microsoft, l'account Microsoft o Microsoft Entra ID viene riconosciuto e supportato. Se si usano strumenti che non supportano gli account Microsoft Entra o se si preferisce non condividere le credenziali primarie, è consigliabile usare i token di autenticazione come metodo di autenticazione alternativo.
Suggerimento
È possibile usare l'intelligenza artificiale per facilitare questa attività più avanti in questo articolo, oppure vedere Abilitare l'assistenza AI con Azure DevOps MCP Server per iniziare.
Prerequisiti
| Categoria | Requisiti |
|---|---|
| Autorizzazioni | Autorizzazione per l'accesso e la modifica delle impostazioni utente in cui vengono gestite le reti PAT. - Passare al profilo e selezionare Impostazioni utente>Token di accesso personali. Se è possibile visualizzare e gestire qui i PTS, si dispone delle autorizzazioni necessarie. - Passare al progetto e selezionare Impostazioni progetto>Autorizzazioni. Trovare l'account utente nell'elenco e controllare le autorizzazioni assegnate all'utente. Cercare le autorizzazioni correlate alla gestione dei token o delle impostazioni utente. - Se l'organizzazione dispone di politiche, un amministratore potrebbe dover concedere autorizzazioni specifiche o aggiungere l'utente a un elenco di indirizzi consentiti per creare e gestire i PAT. - I PATs sono collegati all'account utente che ha coniato il token. A seconda delle attività eseguite dal PAT, potrebbe essere necessario disporre di più permessi. |
| Livelli di accesso | Almeno l'accesso di base. |
| Attività | Utilizzare i Personal Access Token (PAT) solo quando necessario e ruotarli regolarmente. Vedere la sezione Procedure consigliate per l'uso di PTS. |
Creare un PAT
Annotazioni
I passaggi e gli screenshot seguenti riflettono Azure DevOps Services. L'esperienza Azure DevOps Server potrebbe variare leggermente.
Accedi alla tua organizzazione (
https://dev.azure.com/{Your_Organization}).Dalla home page, aprire le impostazioni utente
e selezionare Token di accesso personale.
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 le autorizzazioni di questo token per autorizzare le tue attività specifiche.
Ad esempio, per creare un token per un
build and release agent per eseguire l'autenticazione a Azure DevOps, impostare l'ambito del token suAgent Pools (Read & manage) . Per leggere gli eventi del log di controllo e gestire o eliminare flussi, selezionare Leggi log di controllo e quindi selezionare Crea.
L'amministratore potrebbe limitarti nella creazione di PAT con ambito completo o consentirti solo PAT con ambito di pacchetto. Contattare l'amministratore per essere inserito nella lista di autorizzazioni se è necessario accedere a ulteriori ambiti. Alcuni ambiti, ad esempio ,
vso.governancepotrebbero non essere disponibili nell'interfaccia utente se non sono per uso pubblico diffuso.Al termine, copiare il token e archiviarlo in una posizione sicura. Per la sicurezza, non viene visualizzata di nuovo.
Accedere al portale Web di Azure DevOps Server (
https://{server}/{collection}ohttp://{server}:{port}/tfs/{collection}).Dalla home page, aprire le impostazioni utente
e selezionare Token di accesso personale.
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.
Seleziona le autorizzazioni di questo token per autorizzare le tue attività specifiche.
Ad esempio, per creare un token per un
build and release agent per eseguire l'autenticazione a Azure DevOps, impostare l'ambito del token suAgent Pools (Read & manage) . Per leggere gli eventi del log di controllo e gestire o eliminare flussi, selezionare Leggi log di controllo e quindi selezionare Crea.
L'amministratore potrebbe limitarti nella creazione di PAT con ambito completo o consentirti solo PAT con ambito di pacchetto. Contattare l'amministratore per essere inserito nella lista di autorizzazioni se è necessario accedere a ulteriori ambiti. Alcuni ambiti, ad esempio ,
vso.governancepotrebbero non essere disponibili nell'interfaccia utente se non sono per uso pubblico diffuso.Al termine, copiare il token e archiviarlo in una posizione sicura. Per la sicurezza, non viene visualizzata di nuovo.
È possibile usare il token di accesso personale ovunque siano necessarie le credenziali utente per l'autenticazione in Azure DevOps. Ricordare:
- Trattare un PAT con la stessa cautela della password e mantenerlo riservato. Non condividere i PAT.
- Per le organizzazioni supportate da Microsoft Entra ID, effettuare l'accesso con il proprio nuovo PAT entro 90 giorni o esso diventa inattivo. Per altre informazioni, vedere Frequenza di accesso utente per l'accesso condizionale.
Notifiche
Durante la durata di un pat, gli utenti ricevono due notifiche: una alla creazione del pat e un'altra prima della scadenza.
Dopo aver creato un pat, è possibile ricevere una notifica simile all'esempio seguente. Questa notifica serve per confermare che il Personal Access Token (PAT) è stato aggiunto con successo alla tua organizzazione.
Un messaggio di posta elettronica di notifica di scadenza viene inviato prima della scadenza del token. Se l'amministratore ha rimosso la possibilità di creare PAT nell'organizzazione, l'e-mail indica che non è più possibile rigenerare i PAT. Contatta l'amministratore della raccolta di progetti per essere incluso in una lista consentiti per le autorizzazioni continuative di creazione PAT nell'organizzazione.
Per altre informazioni, vedere Configurare un server SMTP e personalizzare la posta elettronica per avvisi e richieste di feedback.
Notifica imprevista
Se si riceve una notifica PAT inaspettata, potrebbe significare che un amministratore o uno strumento ha creato un PAT per te. Ecco alcuni esempi:
- Viene creato un token denominato
git: https://dev.azure.com/{yourorganization} on YourMachinequando ci si connette a un repository Git Azure DevOps tramite git.exe. - Un token denominato
Service Hooks: Servizio app di Azure: Deploy web appviene creato quando l'utente o un amministratore configura una distribuzione di app Web Servizio app di Azure. - Un token denominato
WebAppLoadTestCDIntTokenviene creato quando il test di carico Web viene configurato come parte di una pipeline da parte dell'utente o di un amministratore. - Un token denominato
Microsoft Teams Integrationviene creato quando viene configurata un'estensione di messaggistica di integrazione Microsoft Teams.
Se pensi che la situazione sia seria:
- Revocare il PAT (e modificare la password) se si sospetta sia stato creato per errore.
- Rivolgersi all'amministratore se si è un utente Microsoft Entra per verificare se un'origine o una posizione sconosciuta ha eseguito l'accesso all'organizzazione.
- Esamina le FAQ sui check-in accidentali di PAT nei repository pubblici di GitHub.
Usare un PAT
Il pat viene usato come identità digitale, in modo analogo a una password. Usare le reti AP come modo rapido per eseguire richieste monouso o creare un prototipo di un'applicazione in locale. Usare un token di accesso personale nel codice per autenticare le richieste dell'API REST e automatizzare i flussi di lavoro includendo il pat nell'intestazione di autorizzazione della richiesta.
Dopo che il codice dell'app funziona, passare a Microsoft Entra OAuth per acquisire i token per gli utenti dell'app o un'entità servizio principale o un'identità gestita per acquisire i token come un'applicazione. Non eseguire continuamente app o script con token di accesso personale per periodi prolungati. È possibile utilizzare i token Microsoft Entra ovunque venga usato un PAT.
Considera di ottenere un token Microsoft Entra tramite l'interfaccia della riga di comando di Azure per le richieste non pianificate.
Per fornire il PAT tramite un'intestazione HTTP, convertilo innanzitutto in una stringa Base64.
Specificarlo quindi come intestazione HTTP nel formato seguente:
Authorization: Basic BASE64_USERNAME_PAT_STRING
Modificare un PAT (token di accesso personale)
Per modificare un token di accesso personale, seguire questa procedura:
- Rigenerare un pat per creare un nuovo token e invalidare il token precedente.
- Estendere un pat per aumentare il periodo di validità.
- Modificare l'ambito di un pat per modificarne le autorizzazioni.
Dalla home page, aprire le impostazioni utente
e selezionare Token di accesso personale.Selezionare il token da modificare e quindi selezionare Modifica.
Modificare il nome del token, la scadenza del token o l'ambito di accesso associato al token e quindi selezionare Salva.
Revocare un token di accesso personale
Revoca un PAT in qualsiasi momento per questi e altri motivi:
- Violazione della sicurezza: revocare immediatamente un PAT se si sospetta che sia stata compromessa, divulgata o esposta nei log o nei repository pubblici.
- Non più necessario: revocare un token di accesso personale al termine del progetto, del servizio o dell'integrazione per cui è stato creato.
- Conformità ai criteri: revocare un Personal Access Token (PAT) per applicare le politiche di sicurezza, soddisfare i requisiti di conformità o rispettare le pianificazioni di rotazione dei token dell'organizzazione.
- Modifiche utente: Revocare un PAT quando un membro del team lascia l'organizzazione oppure cambia ruolo e non ha più bisogno di accedere.
- Riduzione dell'ambito: revocare e ricreare un pat con autorizzazioni ridotte quando è necessario limitare le funzionalità di accesso.
- Manutenzione regolare: Revocare un PAT come parte dell'igiene di routine della sicurezza e della gestione del ciclo di vita dei token.
Per revocare un pat, seguire questa procedura:
Nella home page aprire le impostazioni
utente e selezionare Token di accesso personali.In Sicurezza selezionare Token di accesso personali. Selezionare il token per il quale si vuole revocare l'accesso e quindi selezionare Revoca.
Nella finestra di dialogo Conferma selezionare Revoca.
Cosa accade quando un pat scade o viene revocato
Quando un pat scade o viene revocato, qualsiasi servizio o strumento che usa tale pat perde immediatamente l'autenticazione per Azure DevOps. Comprendere l'impatto consente di pianificare la rotazione e prevenire interruzioni del servizio.
Impatto del servizio per scenario
| Scenario | Behavior | Messaggio di errore | Timeline |
|---|---|---|---|
| Operazioni Git (clone, push, pull) | L'autenticazione non riesce; operazioni bloccate |
fatal: Authentication failed for '<url>' oppure 401 Unauthorized |
Immediato |
| Azure Pipelines CI/CD | Il processo di compilazione o di rilascio fallisce nella fase di autenticazione | Error: Personal access token (PAT) is invalid or expired |
Prossima esecuzione della pipeline |
| Chiamate API REST | Tutte le richieste API hanno esito negativo; l'integrazione si interrompe |
401 Unauthorized oppure TF400813: Resource not available for anonymous access |
Immediato |
| Azure Artifacts (NuGet, npm, Maven) | Il ripristino o la pubblicazione del pacchetto non riesce |
401 Unauthorized oppure Credentials could not be authenticated |
Immediato |
| Git Credential Manager | Richiede la ripetizione dell'autenticazione | All'utente viene chiesto di accedere di nuovo | Tentativo di autenticazione successivo |
| Script e strumenti di automazione | L'esecuzione non riesce con errore di autenticazione | Errore specifico dello strumento (varia in base agli strumenti) | Immediato |
Cronologia dell'impatto
Alla scadenza (data specificata):
- PAT diventa inattivo automaticamente
- Eliminazione di tutte le connessioni attive
- I nuovi tentativi di autenticazione hanno esito negativo
Nelle ore successive alla scadenza:
- I processi pianificati (pipeline, distribuzioni) hanno esito negativo all'esecuzione successiva
- Gli utenti interattivi potrebbero non notare fino a quando non tentano l'operazione successiva
Dopo la revoca (immediata):
- Tutte le sessioni attive terminano
- Tutte le nuove richieste che usano tale pat vengono rifiutate
Strategie di prevenzione proattive
Per evitare interruzioni del servizio, seguire queste procedure:
- Rigenerare in anticipo: creare un nuovo pat almeno 7 giorni prima della scadenza, quindi testare e aggiornare tutte le integrazioni prima della scadenza precedente.
- Automatizzare il monitoraggio: usare le API di gestione del ciclo di vita PAT per controllare le date di scadenza a livello di codice.
- Sfalsa le scadenze dei PAT: non lasciare che tutti i PAT scadano lo stesso giorno. Ruotarli trimestralmente secondo scadenze diverse.
- Documenta l'utilizzo dei PAT: mantieni un elenco di dove viene utilizzato ciascun PAT (pipeline, script, integrazione) in modo da poterli aggiornare durante la rotazione.
Se un PAT scade improvvisamente
Se si verificano errori di autenticazione, ecco come eseguire il ripristino:
- Identificare il problema: controllare se il token di accesso personale è scaduto esaminando la pagina Token di accesso personali nelle impostazioni utente o chiedere all'amministratore di controllare il log di controllo.
- Crea una sostituzione: Genera un nuovo PAT se le autorizzazioni lo consentono (vedi Crea un PAT).
-
Aggiornare tutte le integrazioni: sostituire il token di accesso personale precedente con quello nuovo in:
- File di configurazione Git (
.git/config) - File YAML della pipeline
- Agenti di compilazione
- Script e integrazioni
- Variabili di ambiente
- File di configurazione Git (
-
Testare la connettività: eseguire un'operazione di test (ad esempio,
git clone, chiamata API) per verificare il funzionamento del nuovo token di accesso personale. - Revocare il token di accesso personale precedente: rimuoverlo dall'account per ridurre i rischi di sicurezza.
Per scenari locali
In Azure DevOps Server, il comportamento di scadenza pat è lo stesso, ma l'impatto è locale per il server e i servizi connessi.
Strategia di rotazione e rinnovo del PAT
La rotazione regolare dei PTS riduce il rischio di compromissione delle credenziali e consente di rispettare i criteri di sicurezza dell'organizzazione.
Perché ruotare i PAT?
- Mitigazione delle violazioni: se un PAT viene divulgato, compromesso o rubato, limitarne la durata riduce la finestra di esposizione.
- Conformità: molti standard di sicurezza (SOC 2, ISO 27001, HIPAA) richiedono una rotazione regolare delle credenziali.
- Igiene: rimuove i token inutilizzati o dimenticati dall'organizzazione.
- Controllabilità: la rotazione frequente crea tracce di controllo chiare delle modifiche delle credenziali.
Frequenza di rotazione consigliata
Applicare i PT di breve durata e stabilire una strategia di rotazione in base al tipo pat e al profilo di rischio:
- PTS personali: Ruota ogni 90 giorni (minimo trimestrale).
- PAT degli account di servizio: Ruotali ogni 90 giorni con rinnovo automatico ove possibile, per evitare interruzioni del servizio.
- PT con privilegi o con ambito elevato (ad esempio, usati per l'infrastruttura critica): ruotare ogni 30 giorni per aumentare la sicurezza.
-
Offboarding: Revocate immediatamente i PAT quando un membro del team è soggetto a uno dei seguenti cambiamenti di stato:
- Terminazione o partenza
- Trasferimento a un team o a un'organizzazione diversa
- Congedo di assenza
- Cambio di ruolo o turno di responsabilità
Strategia a lungo termine: eseguire la migrazione da reti AT a un'autenticazione più avanzata
Microsoft consiglia di ridurre l'utilizzo di pat a favore di metodi di autenticazione più efficaci e controllabili. Laddove possibile, eseguire la migrazione a:
- Microsoft Entra token : con funzionalità di aggiornamento limitate, controllabili tramite Entra ID
- Identità gestite: per i servizi ospitati da Azure (servizio app, funzioni, app contenitore)
- Entità servizio : per scenari tra tenant o non Azure
- OAuth 2.0 con Microsoft Entra : per le integrazioni basate su browser e le app di terze parti
Vantaggi della migrazione:
- Superficie di attacco ridotta: elimina le credenziali statiche di lunga durata
- Maggiore controllo: i log di controllo nativi Entra ID tengono traccia di ogni autenticazione
- Ciclo di vita automatizzato: i token scadono per impostazione predefinita; nessuna rotazione manuale necessaria
- Supporto per l'accesso condizionale: applicare criteri di sicurezza a livello di organizzazione
Per informazioni dettagliate sulle alternative di autenticazione, vedere autenticazione di Microsoft Entra e entità servizio e identità gestite.
Flusso di lavoro di rotazione
Seguire questa procedura per ruotare un token di accesso personale senza interrompere i servizi:
Passaggio 1: Creare il nuovo pat
- Nella home page aprire le impostazioni utente e selezionare Token di accesso personali.
- Selezionare + Nuovo token.
- Immettere lo stesso nome del token precedente (per facilitare il rilevamento).
- Impostare scadenza su 90 giorni da oggi.
- Selezionare gli stessi ambiti del token precedente.
- Selezionare Crea e copiare immediatamente il nuovo token (non verrà visualizzato di nuovo).
Passaggio 2: Testare il nuovo pat
Prima di ritirare il pat precedente, verificare che quello nuovo funzioni:
# For Git (replace with your URL and new PAT)
git clone https://<user>:<new-pat>@dev.azure.com/<org>/<project>/_git/<repo>
# For REST API
curl -u :<new-pat> https://dev.azure.com/<org>/_apis/projects
Passaggio 3: Aggiornare tutte le integrazioni
Per ogni servizio o strumento che usa il vecchio PAT:
| Integration | Metodo di aggiornamento |
|---|---|
| Credenziali Git | Aggiorna .git/config o Git Credential Manager |
| Pipeline YAML | Aggiornare la connessione al servizio o le informazioni di riferimento sulle variabili |
| Script/strumento | Aggiornare il file di configurazione o la variabile di ambiente |
| Azure Artifacts | Aggiornare nuget.config, .npmrc o il provider di credenziali |
| Agente di compilazione | Aggiornare la configurazione dell'agente tramite l'interfaccia utente Web |
Esempio: Aggiornamento di una variabile della pipeline
# Before
- script: npm install
env:
NPM_TOKEN: $(old-pat-variable)
# After
- script: npm install
env:
NPM_TOKEN: $(new-pat-variable)
Passaggio 4: Verificare la funzionalità
Dopo aver aggiornato ogni integrazione, testarla:
- Eseguire un processo della pipeline.
- Eseguire manualmente uno script.
- Tentare un'operazione Git.
- Controllare le chiamate API.
Passaggio 5: Revoca il vecchio PAT
Dopo aver aggiornato e testato tutte le integrazioni, revocare il token di accesso personale precedente:
- Nella home page aprire le impostazioni utente e selezionare Token di accesso personali.
- Selezionare il vecchio PAT.
- Selezionare Revoca e conferma.
Scenario di rotazione: gestione dell'uscita di un membro del team
Quando un membro del team lascia:
Azione immediata (giorno di partenza):
- L'amministratore revoca tutti i propri PAT da Impostazioni dell'organizzazione > Sicurezza > Token di accesso personali
- L'amministratore controlla il log di controllo per tutti i PT creati da questo utente
- Qualsiasi servizio che utilizza il proprio PAT smette immediatamente di funzionare (come previsto)
Entro 1 settimana:
- I team che usano il PAT di quella persona devono passare a un account di servizio condiviso o a un nuovo PAT
- Aggiornare tutti gli script, le pipeline e le integrazioni
In corso:
- Esaminare i log di controllo settimanalmente per le reti PAT orfane
Automazione della rotazione con l'API di gestione del ciclo di vita PAT
Per le distribuzioni su larga scala, eseguire la rotazione dei PAT a livello di programmazione:
import requests
from datetime import datetime, timedelta
# 1. Get PAT metadata (using Entra token)
org_url = "https://dev.azure.com/myorg"
entra_token = "YOUR_ENTRA_TOKEN"
response = requests.get(
f"{org_url}/_apis/tokens/pats",
headers={"Authorization": f"Bearer {entra_token}"},
params={"api-version": "7.1-preview.1"}
)
pats = response.json()["value"]
# 2. Find PATs expiring in 7 days
expiring_soon = [
pat for pat in pats
if (datetime.fromisoformat(pat["expiresOn"].replace("Z", "+00:00"))
- datetime.now().astimezone()).days <= 7
]
# 3. Create new PATs for expiring ones
for old_pat in expiring_soon:
new_pat_payload = {
"displayName": old_pat["displayName"],
"scope": old_pat["scope"],
"targetAccounts": old_pat["targetAccounts"],
"validFrom": datetime.now().isoformat(),
"validTo": (datetime.now() + timedelta(days=90)).isoformat(),
}
# Create new PAT
new_response = requests.post(
f"{org_url}/_apis/tokens/pats",
json=new_pat_payload,
headers={"Authorization": f"Bearer {entra_token}"},
params={"api-version": "7.1-preview.1"}
)
new_pat = new_response.json()
print(f"Created new PAT: {new_pat['patToken']} (save securely)")
# TODO: Update integrations with new PAT
# TODO: Test new PAT
# TODO: Revoke old PAT after verification
print(f"\nRotated {len(expiring_soon)} PATs")
Audit trail: tracciamento della creazione e della revoca dei PAT
Gli amministratori dell'organizzazione e i team di sicurezza devono monitorare l'attività pat per la conformità, la risoluzione dei problemi e il rilevamento delle minacce.
Dove trovare i log di controllo pat
- Vai alla tua organizzazione:
https://dev.azure.com/<org> - Seleziona Impostazioni organizzazione.
- Selezionare Log di controllo.
- Usare i filtri per trovare gli eventi PAT.
- Vai alla tua raccolta di Azure DevOps Server.
- Selezionare Impostazioni della raccolta.
- Selezionare Log di controllo.
- Usare i filtri per trovare gli eventi PAT.
Filtro per gli eventi PAT
Nel log di controllo filtrare le attività correlate al pat:
| Tipo di evento | Description | Indica |
|---|---|---|
PatCreated |
È stato creato un nuovo PAT | Nuove credenziali rilasciate |
PatModified |
L'ambito o la scadenza di un PAT sono cambiati | Credenziale aggiornata o rinnovata |
PatRegenerated |
Un PAT esistente è stato rigenerato (sottoposto a rotazione) | Token precedente invalidato, nuovo rilasciato |
PatRevoked |
Un PAT è stato revocato | Credenziali invalidate (effetto immediato) |
PatInactiveRevoked |
Un PAT è stato revocato automaticamente per inattività | Credenziale non più valida rimossa |
Visualizzazione delle voci del registro di controllo
Ogni voce del log di controllo contiene:
- Timestamp: quando si è verificata l'azione
- Utente: chi ha eseguito l'azione (o "Sistema" per la revoca automatica)
- Evento: tipo di azione PAT
- Dettagli: ID pat interessato, ambito, organizzazione (se disponibile)
- Indirizzo IP: origine dell'azione (per l'analisi delle minacce)
Conservazione dei log di controllo
- Azure DevOps Services: i log di controllo conservati per 90 giorni per impostazione predefinita (gli amministratori possono configurare questa impostazione)
- Azure DevOps Server: i criteri di conservazione variano in base alla configurazione SQL Server (in genere da 1 a 2 anni)
Esempio: Indagine su un PAT orfano
Supponiamo che tu trovi un vecchio PAT (token di accesso personale) ancora attivo, ma che non dovrebbe esserlo:
- Prendere nota dell'ID pat dall'elenco dei token attivi.
-
Cercare nel log
PatCreateddi controllo gli eventi con tale ID. - Rivedi la voce relativa alla creazione: chi l'ha creata, quando, da quale organizzazione.
-
Verificare l'utilizzo: se
PatModifiedsono presenti eventi oPatRegenerated, il token era in uso attivo. -
Verifica della revoca: se non è presente alcun
PatRevokedevento, il pat è ancora valido. - Agire: revocare il PAT se non è più necessario o avvisare il proprietario di ruotarlo.
Procedure consigliate per il monitoraggio dei controlli
- Esaminare gli eventi PAT ogni mese: identificare i token orfani o sospetti.
-
Imposta avvisi: se l'organizzazione usa Monitoraggio di Azure, configura avvisi per gli eventi
PatCreatedoPatRevoked. - Conformità ai criteri di conservazione: esportare e archiviare i log di controllo in base ai requisiti di conformità.
- Tenere traccia in base all'utente: monitorare gli utenti che creano la maggior parte delle procedure PAT (possono indicare procedure rischiose).
-
Esaminare le anomalie:
- Eventi imprevisti
PatCreatedal di fuori dell'orario di ufficio. - Più
PatRevokedeventi per lo stesso utente (possibile violazione dell'account). -
PatCreatedda indirizzi IP insoliti.
- Eventi imprevisti
Accesso a livello di codice ai log di controllo (API REST)
Gli amministratori possono eseguire query sul log di controllo tramite l'API REST:
# List recent audit log events (last 10)
curl -u :<entra-token> \
"https://dev.azure.com/<org>/_apis/audit/auditlog?api-version=7.1-preview.1" \
| jq '.value[] | select(.eventType | contains("Pat"))'
Criteri di scadenza dei PAT dell'organizzazione
Gli amministratori dell'organizzazione possono applicare una durata minima dei PAT e limitare la creazione di token per impedire un accesso eccessivamente ampio. Questi criteri garantiscono la conformità agli standard di sicurezza e riducono il rischio di credenziali compromesse di lunga durata.
- Passare a Impostazioni dell'organizzazione>Criteri (o Sicurezza>Token di accesso personale).
- Selezionare le impostazioni per:
- Restrizioni pat con ambito completo: impedisce agli utenti di creare token con accesso completo all'organizzazione.
- Restrizioni pat globali: limitare gli utenti alla creazione di token che accedono a più organizzazioni.
- Restrizioni per la durata dei token: impostare la durata massima del token di accesso personale( ad esempio, nessun token dura più di 90 giorni).
Per altre informazioni, vedere Gestire le api con criteri per gli amministratori.
API di gestione del ciclo di vita PAT
Le API di gestione del ciclo di vita dei PAT possono aiutare quando la gestione di grandi volumi di token tramite l'interfaccia utente diventa insostenibile. La gestione della rotazione pat a livello di codice consente anche di ruotare regolarmente i token di accesso e ridurre la durata predefinita. Puoi configurare l'app Python di esempio con il tuo tenant Microsoft Entra e l'organizzazione Azure DevOps.
Alcuni aspetti da notare su queste API:
- Microsoft Entra token di accesso sono necessari per accedere a questa API. Usare una forma di autenticazione più avanzata quando si conino nuovi token.
- Solo gli utenti o le app che utilizzano un flusso "per conto dell'utente" possono generare i Token di Accesso Personale (PAT). Le app che usano flussi "on-behalf-of-application" o flussi di autenticazione che non rilasciano token di accesso Microsoft Entra non sono validi per l'uso con questa API. Di conseguenza, le entità servizio o le identità gestite non possono creare o gestire PAT.
- In precedenza, le API di gestione del ciclo di vita PAT supportano solo l'ambito
user_impersonation, ma ora l'ambitovso.patsè disponibile ed è l'ambito consigliato da usare con queste API. Downscope tutte le app che in precedenza si basavano suuser_impersonationper chiamare queste API.
Uso dell'interfaccia della riga di comando di Azure per la gestione dei PAT
La az devops CLI offre comandi per gestire i PAT senza scrivere script personalizzati. Per il riferimento completo all'interfaccia della riga di comando, vedere Azure DevOps CLI e accedere con PAT.
# List all your PATs
az devops user list
# Create a new PAT with limited scope
az devops token list \
--organization https://dev.azure.com/myorg \
--user <user-id>
# Example: Using az devops commands in a rotation script
# Sign in with Entra token (recommended)
az login --use-device-code
# List organization members (for bulk admin operations)
az devops security group membership list \
--organization https://dev.azure.com/myorg \
--group-id <admin-group-id>
Uso dell'API REST per la rotazione automatica
Per la gestione pat su larga scala, usare gli endpoint dell'API REST.
# List all PATs for a user (requires Entra token)
curl -X GET \
-H "Authorization: Bearer <entra-token>" \
"https://dev.azure.com/<org>/_apis/tokens/pats?api-version=7.1-preview.1"
# Create a new PAT
curl -X POST \
-H "Authorization: Bearer <entra-token>" \
-H "Content-Type: application/json" \
-d '{
"displayName": "CI/CD PAT",
"scope": "vso.build vso.release_manage vso.code_write",
"validTo": "2026-10-07T00:00:00.000Z"
}' \
"https://dev.azure.com/<org>/_apis/tokens/pats?api-version=7.1-preview.1"
# Revoke a PAT by ID
curl -X DELETE \
-H "Authorization: Bearer <entra-token>" \
"https://dev.azure.com/<org>/_apis/tokens/pats/<pat-id>?api-version=7.1-preview.1"
Formato PAT
Le stringhe PAT usano un formato specifico progettato per migliorare il rilevamento dei segreti negli strumenti per il rilevamento di PAT trapelati e nelle soluzioni dei partner. Il formato include bit identificabili che migliorano la frequenza di rilevamento dei falsi positivi e consentono una mitigazione più rapida delle perdite rilevate.
- I token sono lunghi 84 caratteri, di cui 52 sono caratteri casuali, che migliorano l'entropia complessiva. I token sono resistenti agli attacchi di forza bruta.
- I token rilasciati da Azure DevOps includono una firma fissa
AZDOalle posizioni 76-80.
Se si integra con i PAT e la convalida dei PAT è incorporata, assicurarsi che il codice di convalida supporti la lunghezza del token di 84 caratteri.
Migliori pratiche per l'utilizzo dei PAT
Prendere in considerazione le alternative
- Acquisire un token di Microsoft Entra tramite l'interfaccia della riga di comando di Azure per le richieste non pianificate invece di generare un PAT di lunga durata.
- Usare gestori di credenziali come Git Credential Manager o Azure Artifacts Credential Manager per semplificare la gestione delle credenziali, impostando l'autenticazione su
oautho utilizzando i token Microsoft Entra.
Creare i token di accesso personali
- Non inserire dati personali nel nome PAT. Non rinominare il nome pat in modo da includere alcuni o tutti i token PAT effettivi.
- Evitare la creazione di protocolli PAT globali, a meno che non sia necessario in tutte le organizzazioni.
- Usare un token diverso per flusso o caso d'uso.
- Seleziona solo gli ambiti minimi necessari per ciascun PAT. Concedere il privilegio minimo necessario per l'attività specifica. Creare token PAT separati con ambiti limitati per flussi di lavoro diversi anziché usare un singolo token con ambito generico. Se il PAT ha bisogno di autorizzazioni di sola lettura, non consentire autorizzazioni di scrittura fino a quando non sono necessarie.
- Mantieni breve la durata dei PAT.
Gestire i Token di Accesso Personale
- Non condividere i tuoi PATs!
- Store i PT in una soluzione di gestione delle chiavi sicura, ad esempio Azure Key Vault.
- Ruota o rigenera regolarmente i token di accesso personale tramite l'interfaccia utente o utilizzando le API di gestione del ciclo di vita dei token di accesso personale.
- Revocare i PT quando non sono più necessari.
Per gli amministratori
- Gli amministratori tenant devono impostare criteri per limitare:
- Creazione globale di PAT (richiede token con ambito organizzativo)
- Creazione di PAT con ambito completo (richiede ambiti limitati)
- Durata dei PAT a lunga durata (imporre una durata massima di 30–90 giorni)
- Gli amministratori tenant possono revocare i token di accesso personali per gli utenti dell'organizzazione se i token sono compromessi.
- Gli amministratori dell'organizzazione devono limitare la creazione di PAT nell'organizzazione e, ove possibile, eseguire la migrazione dei servizi verso l'autenticazione Microsoft Entra anziché usare i PAT.
Procedura dettagliata di controllo amministrativo: gestione di tutti i PAT nella tua organizzazione
Gli amministratori dell'organizzazione possono controllare e gestire tutti i token PAT nell'intera organizzazione per applicare i criteri di sicurezza e identificare i token rischiosi.
Passaggio 1: Accedere alla pagina di gestione pat dell'organizzazione
- Vai a Impostazioni dell'organizzazione>Sicurezza>Token di accesso personale
- Per impostazione predefinita, visualizzi i tuoi PAT
- Selezionare Tutti i PAT dal menu a discesa per visualizzare i token di tutti gli utenti
- Vai a Impostazioni raccolta>Sicurezza>Token di accesso personale
- Selezionare Tutti i PAT per visualizzare tutti i token della raccolta
Passaggio 2: Filtrare e identificare i token ad alto rischio
Cerca:
- Token di lunga durata (scadenza > 90 giorni): candidati per la rotazione o la revoca
- Token con ambito completo (ambito = tutto): rischio di sicurezza più elevato; applicare criteri per limitare
- Token globali (accesso a più organizzazioni): Evitare questi token; considerare alternative con ambito limitato all'organizzazione
- Token inattivi (nessuna attività recente): revoca sicura
- Token creati all'esterno dell'orario di ufficio: potenziale evento imprevisto di sicurezza
Passaggio 3: Esaminare il log di controllo per gli eventi pat
- Vai a Impostazioni dell'organizzazione>Registro di controllo
- Filtra per tipo di evento:
-
PatCreated— Trovare quando sono stati rilasciati i token -
PatRevoked— Tenere traccia del momento in cui i token sono stati disabilitati -
PatRegenerated— Monitorare l'attività di rotazione
-
- Esportare i log di controllo per la creazione di report sulla conformità (conservazione di 90 giorni)
Passaggio 4: Revocare i token compromessi o inutilizzati
Se trovi un PAT compromesso o non necessario:
- Passare a Impostazioni dell'organizzazione>Sicurezza>Token di accesso personale
- Seleziona tutti i PAT
- Selezionare il pat che si vuole revocare
- Selezionare Revoca e conferma
- Inviare una notifica al proprietario del token per creare un pat di sostituzione, se necessario
Passaggio 5: Applicare i criteri dell'organizzazione
- Vai a Impostazioni dell'organizzazione>Criteri
- Configurare:
- Limitare la creazione di PAT con ambito completo — Richiedere token con ambito
- Limitare la creazione globale di PAT — Richiedere token con ambito dell'organizzazione
- Impostare la durata massima pat - Esempio: nessun token può superare i 90 giorni
- Documentare i criteri nel manuale di sicurezza o nel wiki
Esempio: revoca in blocco per l'uscita del personale
Quando un utente lascia l’organizzazione, revoca tutti i suoi PAT:
- Passare a Impostazioni dell'organizzazione>Sicurezza>Token di accesso personali>Tutti i PAT
- Filtra in base al nome o al messaggio di posta elettronica dell'utente in partenza
- Selezionare tutti i loro PAT
- Selezionare Revoca (azione in blocco) e confermare
Tutti i loro PAT vengono revocati immediatamente, impedendo a qualsiasi servizio di utilizzare tali credenziali.
Domande frequenti
Q. Perché non è possibile modificare o rigenerare un pat con ambito a una singola organizzazione?
A. Accedi all'organizzazione dove è definito il tuo PAT. È possibile visualizzare i tuoi PAT quando si accede a qualsiasi organizzazione nella stessa Microsoft Entra ID modificando il filtro Ambito di accesso. È possibile modificare solo i token con ambito organizzazione quando si è connessi all'organizzazione specifica.
Q. Cosa accade a un pat se un account utente è disabilitato?
A. Quando un utente viene rimosso da Azure DevOps, il pat viene invalidato entro un'ora. Se l'organizzazione è connessa a Microsoft Entra ID, il token di accesso personale viene invalidato anche in Microsoft Entra ID perché appartiene all'utente. Ruotare il Personal Access Token (PAT) su un altro account utente o account di servizio per mantenere i servizi in esecuzione.
Q. Posso usare i PAT con tutte le API REST di Azure DevOps?
A. No È possibile usare i token di accesso personale (PAT) con la maggior parte delle API REST Azure DevOps, ma organizzazioni e profili e le API del ciclo di vita di gestione dei PAT supportano solo i token Microsoft Entra.
Q. Cosa succede se controllo accidentalmente il mio token di accesso personale su un repository pubblico su GitHub?
A. Azure DevOps esegue l'analisi per individuare i token di accesso personali trapelati nei repository pubblici di GitHub. Quando viene rilevato, Azure DevOps notifica al proprietario del token e registra l'evento nel log audit. A meno che non siano disabilitati, i PAT esposti vengono revocati automaticamente. Per altre informazioni, vedere Revocare automaticamente i PAT trapelati.
Q. È possibile usare un token di accesso personale come chiave API per pubblicare pacchetti NuGet in un feed di Azure Artifacts usando la riga di comando dotnet/nuget.exe?
A. No Azure Artifacts non supporta il passaggio di un token di accesso personale come chiave API. Quando si usa un ambiente di sviluppo locale, installare il Azure Artifacts Credential Provider per l'autenticazione con Azure Artifacts. Per altre informazioni, vedere gli esempi seguenti: dotnet e NuGet.exe. Per pubblicare i pacchetti usando Azure Pipelines, usare l'attività NuGet Authenticate per eseguire l'autenticazione con il feed. Per altre informazioni, vedere l'esempio in Publish NuGet packages with Azure Pipelines (YAML/Classic).
Q. Perché il mio PAT smetteva di funzionare?
A. L'autenticazione PAT richiede di accedere regolarmente a Azure DevOps usando il flusso di autenticazione completo. L'accesso una volta ogni 30 giorni è sufficiente per molti utenti, ma potrebbe essere necessario accedere più frequentemente a seconda della configurazione di Microsoft Entra. Se il token di accesso personale smette di funzionare, provare prima di tutto ad accedere all'organizzazione e completare la richiesta di autenticazione completa. Se il PAT non funziona ancora, controlla se è scaduto.
Per Azure DevOps Server, abilitare IIS Basic Authentication invalida l'utilizzo pat. Mantenere disattivata l'autenticazione di base di IIS.
Q. Come si creano token di accesso che non sono associati a un utente specifico?
A. I PAT sono sempre associati all'identità dell'utente che li ha creati. Per usare i token non associati a un utente specifico, usare i token Microsoft Entra emessi da un'entità servizio applicazione o identità gestita. Per le pipeline, usare le connessioni al servizio per l'autenticazione senza credenziali specifiche dell'utente. Altre informazioni su reducendo l'utilizzo di PAT in Azure DevOps.
Q. Come è possibile rigenerare o ruotare i PT tramite l'API? Ho visto questa opzione nell'interfaccia utente, ma non vedo un metodo simile nell'API.
A. La funzionalità Rigenera nell'interfaccia utente esegue effettivamente diverse azioni, che è possibile replicare tramite un'API.
Per ruotare il PAT, seguire questa procedura:
- Recuperare i metadati PAT usando una chiamata GET .
- Creare un nuovo pat usando una chiamata POST con l'ID PAT precedente.
- Revocare il Token di Accesso Personale precedente usando una chiamata DELETE.
Q. Per quanto tempo un pat scaduto, revocato o inattivo rimane visibile nell'elenco dei token di Azure DevOps?
A. Non è possibile usare o rigenerare LET scadute o revocate. La visualizzazione mantiene visibili questi token inattivi per diversi mesi dopo la scadenza o la revoca prima di rimuoverli automaticamente.
Q. Perché viene visualizzato un messaggio di richiesta di approvazione dell'amministratore quando si tenta di usare un'app Microsoft Entra per chiamare le API di gestione del ciclo di vita PAT?
A. I criteri di sicurezza del tenant richiedono il consenso amministratore prima che le applicazioni possano accedere alle risorse dell'organizzazione. Contattare l'amministratore del locatario.
Usare l'intelligenza artificiale per gestire i token di accesso personale
Se si configura il Azure DevOps MCP Server, è possibile usare gli assistenti di intelligenza artificiale per gestire ed esaminare i token di accesso personali usando i prompt del linguaggio naturale. Il server MCP fornisce all'assistente di intelligenza artificiale l'accesso sicuro ai dati Azure DevOps, in modo da elencare i token, controllare le date di scadenza ed esaminare gli ambiti dei token senza spostarsi nell'interfaccia Web.
Richieste di esempio per la gestione dei token di accesso personale
| Attività | Richiesta di esempio |
|---|---|
| Creare un token con privilegi minimi | Help me create a PAT for <organization-name> that only has read access to work items and code in the <project-name> project, valid for 30 days |
| Ruotare i token in scadenza | Show me all my PATs in <organization-name> expiring in the next 14 days, their scopes, and what I need to update when I regenerate them |
| Controlla l'igiene dei token | List all my active PATs in <organization-name>, when each was last used, and flag any that have broader scopes than necessary |
| Risolvere gli errori di autenticazione | My PAT stopped working for Git push to <repo-name> in <project-name> - help me check if it expired, has the right scope, or if a policy is blocking it |
| Trovare i token da sostituire con l'autenticazione Entra | Show me which of my PATs in <organization-name> are used for interactive scenarios that could switch to Microsoft Entra authentication instead |
| Configurare una connessione al servizio CI/CD | What's the minimum PAT scope needed for an Azure Pipelines service connection to <organization-name> that runs builds and deploys releases? |
Suggerimento
Se stai usando Visual Studio Code, la modalità agente è particolarmente utile per esaminare e controllare i tuoi PAT, inclusa l'identificazione dei token che richiedono una rotazione o hanno ambiti eccessivi.
- Per evitare di usare dati non aggiornati o memorizzati nella cache delle query precedenti, aggiungere al prompt .
Do not use previously fetched data
Contenuti correlati
- Accedi a Azure DevOps con l'identità del workload di Microsoft Entra
- Revocare i token di accesso personale dell'utente (per gli amministratori)
- Autenticazione con token di Microsoft Entra