Uso de tokens de acceso personal

Servicios de Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Un token de acceso personal (PAT) es una contraseña alternativa para la autenticación Azure DevOps. Un PAT le identifica y determina los recursos y las operaciones disponibles. Trate un PAT con el mismo cuidado que una contraseña.

Precaución

Evite los PAT cuando haya disponible un método de autenticación más seguro. Para aplicaciones y automatización, utilice tokens de Microsoft Entra, identidades administradas o entidades de servicio siempre que sea posible.

Si una herramienta no admite la autenticación de Microsoft Entra, use un PAT de ámbito de organización con los ámbitos mínimos y la duración más breve posible.

Importante

Azure DevOps está retirando PAT globales. Todos los PAT globales existentes dejan de funcionar el 1 de diciembre de 2026. Mígrelas ahora a PAT de ámbito organizativo o a la autenticación de Microsoft Entra. Para obtener más información, consulte Retirada de tokens de acceso personal globales en Azure DevOps.

Requisitos previos

  • Acceso a una organización de Azure DevOps o a una colección de Azure DevOps Server.
  • Permisos necesarios para los recursos y operaciones a los que accede el PAT. Un PAT no puede conceder más permisos de los que tiene su propietario.
  • Permiso para crear PAT según las directivas de su organización. Un administrador puede restringir la creación, los ámbitos y las duraciones de PAT. Para obtener más información, consulte Administración de PAT con directivas.

Creación de un PAT

  1. Inicie sesión en su organización (https://dev.azure.com/{organization}).

  2. En la página principal, abra la configuración de usuario y seleccione Tokens de acceso personal.

    Captura de pantalla de la configuración del usuario con tokens de acceso personal seleccionados.

  3. Seleccione + New Token (+ Nuevo token).

    Captura de pantalla de la página «Tokens de acceso personal» con «Nuevo token» seleccionado.

  4. Escriba un nombre, seleccione una organización y establezca una fecha de expiración.

    Captura de pantalla del cuadro de diálogo de creación con el nombre de PAT, la organización y la expiración configurados.

  5. Seleccione solo los ámbitos necesarios para las tareas previstas.

    Por ejemplo, para registrar un agente autohospedado, seleccione Grupos de agentes (Leer y administrar). El administrador podría restringir los PAT de alcance completo o requerir una inclusión en una lista de permitidos para alcances específicos.

    Captura de pantalla de las opciones de ámbito con los ámbitos necesarios seleccionados para un nuevo PAT.

  6. Seleccione Crear, copie el token y almacénelo en una ubicación segura. El valor del token no vuelve a aparecer.

    Captura de pantalla de una nueva PAT lista para copiar para el almacenamiento seguro.

Nota:

En las capturas de pantalla siguientes se muestran Azure DevOps Services. La interfaz Azure DevOps Server puede diferir ligeramente.

  1. Inicie sesión en el portal web de Azure DevOps Server (https://{server}/{collection} o http://{server}:{port}/tfs/{collection}).

  2. En la página principal, abra la configuración de usuario y seleccione Tokens de acceso personal.

    Captura de pantalla de la configuración del usuario con tokens de acceso personal seleccionados.

  3. Seleccione + New Token (+ Nuevo token).

    Captura de pantalla de la página de tokens de acceso personal con el nuevo token seleccionado.

  4. Escriba un nombre, seleccione la colección y establezca una fecha de expiración.

    Captura de pantalla del cuadro de diálogo de creación con el nombre de PAT, la colección y la expiración configurados.

  5. Seleccione solo los ámbitos necesarios para las tareas previstas.

    Por ejemplo, para registrar un agente autohospedado, seleccione Grupos de agentes (Leer y administrar).

    Captura de pantalla de las opciones de ámbito con los ámbitos necesarios seleccionados para un nuevo PAT.

  6. Seleccione Crear, copie el token y almacénelo en una ubicación segura. El valor del token no vuelve a mostrarse.

    Captura de pantalla de una nueva PAT lista para copiar para el almacenamiento seguro.

En el caso de las organizaciones respaldadas por Microsoft Entra ID, inicie sesión con un nuevo PAT en un plazo de 90 días o se vuelva inactivo. Para obtener más información, consulte Frecuencia de inicio de sesión de usuario para Acceso condicional.

Notificaciones

Azure DevOps envía una notificación al crear un PAT y otra notificación antes de que expire.

Captura de pantalla de un correo electrónico que confirma que se creó un PAT.

Si una directiva de organización ya no le permite volver a generar un PAT, el correo electrónico de expiración identifica la restricción. Póngase en contacto con el administrador de la colección de proyectos si necesita una entrada en la lista de permitidos.

Para obtener información sobre la configuración del correo electrónico, vea Configurar un servidor SMTP y personalizar el correo electrónico para las alertas y las solicitudes de comentarios.

Notificación inesperada

Una notificación inesperada podría significar que un administrador o una herramienta han creado un PAT para ti. Entre los nombres de token comunes se incluyen:

  • git: https://dev.azure.com/{organization} on {machine}, creado cuando Git se conecta a un repositorio de Azure Repos.
  • Service Hooks: Azure App Service: Deploy web app, creado cuando se configura una implementación de Azure App Service.
  • Microsoft Teams Integration, creado cuando se configura una integración de Microsoft Teams.

Si no reconoce una PAT, revoquela y cambie la contraseña. Para una cuenta de Microsoft Entra, pídale a su administrador que revise la actividad de inicio de sesión no reconocida.

Usar una PAT

Use un PAT para solicitudes de un solo uso, prototipos locales o herramientas que no admitan la autenticación Microsoft Entra. No use PAT como credenciales a largo plazo para aplicaciones o servicios de producción.

Azure DevOps admite un PAT mediante un encabezado HTTP de autenticación básica. El nombre de usuario puede estar vacío. Codifique base64 la cadena :{PAT}y use el valor resultante en este encabezado:

Authorization: Basic BASE64_ENCODED_PAT

En los ejemplos siguientes se espera que la AZURE_DEVOPS_PAT variable de entorno se rellene desde un origen secreto seguro.

$patBytes = [Text.Encoding]::ASCII.GetBytes(":$env:AZURE_DEVOPS_PAT")
$headers = @{ Authorization = "Basic $([Convert]::ToBase64String($patBytes))" }

Invoke-RestMethod `
  -Uri "https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.1" `
  -Headers $headers

Una vez que el prototipo funcione, migrélo a Microsoft Entra OAuth para acceso delegado de usuarios o a una entidad de servicio o identidad administrada para acceso de aplicaciones.

Modificación de un PAT

Puede cambiar el nombre, la expiración o los ámbitos de un PAT. La regeneración de un PAT crea un nuevo valor de token y invalida el valor anterior. No se puede modificar ni volver a generar un PAT expirado o revocado; cree uno nuevo en su lugar.

  1. En la página principal, abra la configuración de usuario y seleccione Tokens de acceso personal.

  2. Seleccione el PAT y, a continuación, seleccione Editar.

    Captura de pantalla de un PAT existente con la opción Editar seleccionada.

  3. Cambie el nombre del token, la expiración o los ámbitos y, a continuación, seleccione Guardar.

    Captura de pantalla de la configuración de PAT actualizada lista para guardar.

Revocar un PAT

Revoque un PAT cuando esté en peligro, ya no sea necesario o tenga más acceso de lo necesario.

  1. En la página principal, abra la configuración de usuario y seleccione Tokens de acceso personal.

  2. Seleccione el PAT y, a continuación, Revoque.

    Captura de pantalla de un PAT existente con la opción Revocar seleccionada.

  3. En el cuadro de diálogo de confirmación, seleccione Revocar.

    Captura de pantalla del cuadro de diálogo de confirmación para revocar un PAT.

Reemplazar un PAT que va a expirar o revocado

Después de que un PAT expire o se revoque, Azure DevOps rechaza los intentos de autenticación posteriores que lo usan. Normalmente, se produce un error en una canalización, un script, un cliente de paquete o una operación de Git la próxima vez que se autentique. Azure DevOps no garantiza que la revocación finalice todas las conexiones que ya están establecidas.

Girar un PAT antes de que expire

Para reemplazar un PAT sin una interrupción de servicio evitable:

  1. Cree un PAT con ámbito de organización solo con los ámbitos necesarios y una duración corta.

  2. Almacene el nuevo valor en el almacén de secretos. No incluya PAT en las URL remotas de Git, .git/config, el código fuente, los archivos YAML de la canalización ni los registros.

  3. Pruebe el nuevo PAT con una operación de no producción o una integración antes de actualizar cada dependencia.

  4. Actualice cada servicio o herramienta que almacene el PAT anterior:

    Integration Dónde actualizar la credencial
    Git Administrador de credenciales de Git u otro administrador de credenciales seguro
    Azure Pipelines Una variable secreta, un grupo de variables o una conexión de servicio
    Azure Artifacts El proveedor de credenciales de Azure Artifacts o la configuración segura del administrador de paquetes
    Secuencias de comandos y clientes REST Un almacén de secretos o una variable de entorno protegida
    Herramientas de terceros Almacén seguro de credenciales de la herramienta
  5. Pruebe cada integración actualizada. Ejecute la canalización afectada, la operación de Git, la operación de paquete, el script o la solicitud de API y compruebe si hay errores de autenticación.

  6. Revoque el PAT antiguo.

Mantenga un inventario del propietario, el propósito, los alcances, la fecha de caducidad y las integraciones dependientes de cada PAT. Reemplazar los PAT antes de que caduquen en función de la política de su organización y del nivel de riesgo del escenario.

Recuperación después de la expiración o revocación

Si un PAT deja de funcionar inesperadamente:

  1. En la página Tokens de acceso personal , compruebe el estado y la expiración del PAT.
  2. Cree un PAT de reemplazo solo con los ámbitos necesarios para las integraciones afectadas.
  3. Actualice las integraciones que almacenan el PAT no disponible.
  4. Pruebe cada integración y supervise su siguiente operación programada para detectar errores de autenticación.

Si el motivo del error no está claro, revise los eventos de auditoría de PAT para determinar si el PAT expiró, se actualizó o se revoca.

Administración de PAT con las API de administración del ciclo de vida

Use las API de administración del ciclo de vida de PAT para enumerar, crear, actualizar y revocar sus propios PAT mediante programación.

Estas API requieren un token de acceso de Microsoft Entra obtenido mediante un flujo delegado de usuario. Usa el ámbito vso.pats. Las entidades de servicio y las identidades administradas no pueden crear ni administrar PAT porque no representan a un usuario.

Operación Solicitud
Lista de PAT GET https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?api-version=7.1
Creación de un PAT POST https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?api-version=7.1
Revocar un PAT DELETE https://vssps.dev.azure.com/{organization}/_apis/tokens/pats?authorizationId={authorizationId}&api-version=7.1

Envíe el token de Microsoft Entra como token de portador. Una solicitud de creación utiliza esta estructura del cuerpo:

{
  "displayName": "CI build access",
  "scope": "vso.build",
  "validTo": "{expiration-in-UTC}",
  "allOrgs": false
}

La respuesta de la lista devuelve tokens en el array patTokens. Una respuesta de creación solo devuelve el secreto una vez en patToken.token. Almacene ese valor de forma segura y nunca escríbalo en los registros. Para revocar el token anterior, pase su authorizationId como parámetro de consulta que se muestra en la tabla.

Para obtener esquemas y ejemplos completos, vea Enumerar PAT, Crear un PAT y Revocar un PAT.

Revisión de eventos de auditoría de PAT

Azure DevOps Services registra eventos de ciclo de vida de PAT en el registro de auditoría de la organización. En Configuración de la organización, seleccione Auditoría y, a continuación, filtre por estas acciones:

Action Event
Se crea un PAT Token.PatCreateEvent
Un PAT expira Token.PatExpiredEvent
Un PAT se encuentra en un repositorio público. Token.PatPublicDiscoveryEvent
Un usuario revoca un PAT Token.PatRevokeEvent
Azure DevOps revoca un PAT Token.PatSystemRevokeEvent
Un PAT se modifica o regenera Token.PatUpdateEvent

Los eventos de acceso a tokens no se registran actualmente. Use el registro de auditoría para investigar los cambios del ciclo de vida, no para determinar cuándo se usó o si se usó un PAT.

Retención del registro de auditoría

Los eventos de auditoría se conservan durante 90 días y, a continuación, se eliminan. El periodo de retención no es configurable. Para conservar eventos más largos, expórtelos a CSV o JSON o configure una secuencia de auditoría en un sistema externo de administración de eventos e información de seguridad (SIEM).

Para obtener más información, consulte Acceso, exportación y filtrado de registros de auditoría y Azure DevOps eventos de auditoría.

Configurar directivas PAT

Los administradores del inquilino pueden restringir los PAT globales y los PAT de ámbito completo, establecer un período de validez máximo de los PAT y controlar la revocación automática de los PAT expuestos. Configurar las directivas PAT a nivel de inquilino en Configuración de la organización>Microsoft Entra.

Los propietarios de la organización pueden restringir la creación de PAT para una organización específica en Configuración de la organización>Directivas. Para consultar los roles, el comportamiento de las directivas y los procedimientos de inclusión en la lista de permitidos, consulte Administrar PAT con directivas.

Formato PAT

Las cadenas PAT usan un formato identificable que mejora la detección de secretos y reduce los falsos positivos.

  • Los PAT tienen 84 caracteres, incluidos 52 caracteres aleatorios.
  • Azure DevOps PAT contienen la firma fija AZDO en las posiciones 76 a 80.

Si la integración valida los PAT, admita el formato de 84 caracteres. Para los controles para tokens filtrados, consulte Revocar automáticamente los PAT filtrados.

Mejores prácticas para el uso de PAT

Considere alternativas

Creación de PAT

  • Cree solo los PAT de ámbito organizativo. Los PAT globales dejan de funcionar el 1 de diciembre de 2026.
  • Use un PAT diferente para cada herramienta o flujo de trabajo.
  • Seleccione solo los ámbitos necesarios para la tarea.
  • Mantenga la duración tan corta como sea práctica.
  • No incluya datos personales ni ninguna parte del valor del token en su nombre visible.

Administración de PAT

  • No comparta los PAT.
  • Almacene PAT en un almacén de secretos seguro, como Azure Key Vault.
  • Reemplace los PAT antes de que expiren y revoquelos cuando ya no sean necesarios.
  • Revoque un PAT inmediatamente si está expuesto o comprometido.

Para administradores

  • Restrinja los PAT de ámbito completo y establezca una duración máxima en función de los requisitos de seguridad.
  • Restrinja la creación de PAT en organizaciones que no lo requieran.
  • Use las API de administración de tokens admitidas para revocar los PAT de usuario.
  • Prefiera la autenticación de Microsoft Entra para servicios y procesos automatizados.

Revisión y respuesta a PAT de riesgo

Como parte de la revisión de seguridad:

  1. Identifique los PAT con todos los ámbitos, larga vigencia, acceso global o sin un propietario ni un propósito documentados.
  2. Revise los eventos de creación, actualización, detección pública, expiración y revocación de PAT en el registro de auditoría. Dado que el acceso a tokens no se registra, no use el registro de auditoría para clasificar un PAT como activo o obsoleto.
  3. Revoque las PAT expuestas, en peligro o innecesarias. Para la desvinculación, use las API de administración de tokens compatibles para revocar los PAT del usuario y notificar a los propietarios de las integraciones afectadas.
  4. Configure las directivas de PAT del inquilino y de la organización para restringir los PAT globales y con ámbito completo, establecer los períodos máximos de vigencia y controlar la revocación automática de los PAT expuestos.
  5. Exporte eventos de auditoría o configure un flujo de auditoría cuando los requisitos de retención superen los 90 días.

Preguntas más frecuentes

¿Por qué no puedo editar o volver a generar un PAT con ámbito en una organización?

Inicie sesión en la organización a la que se aplica el PAT. Puede enumerar los PAT de cualquier organización del mismo inquilino de Microsoft Entra cambiando el filtro de ámbito de acceso, pero puede editar un PAT con ámbito de organización solo desde esa organización.

¿Qué ocurre con las PAT cuando se deshabilita una cuenta de usuario?

Cuando una cuenta está deshabilitada o quitada de una organización, sus PAT ya no pueden acceder a los recursos de esa organización. Azure DevOps no elimina automáticamente las PAT. Si se restaura el acceso, un PAT que no ha expirado o revocado funciona con los permisos actuales del usuario.

¿Puedo usar PAT con todas las API rest de Azure DevOps?

No. Los PAT funcionan con la mayoría de las API rest de Azure DevOps. Algunas API, incluidas las API de administración del ciclo de vida de las organizaciones, perfiles y PAT, requieren tokens de Microsoft Entra.

¿Qué ocurre si se confirma un PAT en un repositorio de GitHub público?

Azure DevOps examina los repositorios de GitHub públicos en busca de PAT filtradas. Cuando detecta un token, Azure DevOps notifica al propietario y registra un evento de auditoría. A menos que la directiva de inquilino deshabilite la revocación automática, Azure DevOps revoca el PAT filtrado. Para obtener más información, consulte Revocación automática de PAT filtrados.

¿Puedo usar un PAT como clave de API para publicar paquetes NuGet?

No. Azure Artifacts no admite pasar un PAT como una clave de API. En un entorno de desarrollo local, instale el proveedor de credenciales de Azure Artifacts. En Azure Pipelines, use la tarea NuGet Authenticate.

Para obtener ejemplos, consulte Publicación con dotnet, Publicación con NuGet.exey Publicación de paquetes NuGet con Azure Pipelines.

¿Por qué dejó de funcionar mi PAT?

Compruebe si el PAT expiró, se revocó, se volvió inactivo, tiene ámbitos insuficientes o pertenece a un usuario cuyos permisos cambiaron. Para una organización respaldada por Microsoft Entra ID, inicie sesión en Azure DevOps y complete la solicitud de autenticación completa e inténtelo de nuevo. Es posible que la configuración del acceso condicional requiera inicio de sesión más frecuente.

Para Azure DevOps Server, la autenticación básica de IIS impide la autenticación PAT. Mantenga deshabilitada la autenticación básica de IIS.

¿Cómo se crea un token de acceso que no está vinculado a un usuario?

Los PAT siempre están asociados al usuario que los creó. Para una identidad que no sea de usuario, use un token de Microsoft Entra emitido a una entidad de servicio de aplicación o una identidad administrada. En el caso de las canalizaciones, use una conexión de servicio.

¿Cómo puedo rotar un PAT mediante la API?

Las API de administración del ciclo de vida no vuelven a generar un PAT en una operación. Enumere el PAT anterior para obtener sus metadatos, cree un nuevo PAT con el ámbito y la expiración necesarios, actualice y pruebe cada integración dependiente y revoque el pat anterior mediante su authorizationId. Para ver las rutas correctas, consulte Administración de PAT con las API de administración del ciclo de vida.

¿Por qué aparece un mensaje de aprobación de administrador al llamar a las API de administración del ciclo de vida de PAT?

Las directivas de seguridad del inquilino requieren el consentimiento del administrador antes de que la aplicación Microsoft Entra pueda acceder a los recursos de la organización. Póngase en contacto con el administrador de inquilinos.