Compartir a través de


Uso de tokens de acceso personal

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Un token de acceso personal (PAT) puede servir como una contraseña alternativa para autenticarse en Azure DevOps. Este artículo le guía por el proceso de creación, uso, modificación y revocación de PAT para Azure DevOps.

Acerca de los PAT

Un token de acceso personal (PAT) actúa como credenciales de seguridad para Azure DevOps. Este PAT no solo lo identifica, sino que también determina la accesibilidad y el ámbito de acceso. Por lo tanto, los PAT son tan importantes como contraseñas y deben controlarse con el mismo nivel de precaución.

Si usa herramientas de Microsoft, su cuenta microsoft (MSA) o el identificador de Microsoft Entra es un método reconocido y compatible. Sin embargo, si usa herramientas de terceros que no admiten cuentas de Microsoft o Microsoft Entra, o si no quiere compartir sus credenciales principales con estas herramientas, los PAT son una alternativa más segura.

Cree y administre PAT de las dos maneras siguientes:

Para establecer PAT para herramientas que no son de Microsoft, puede usar administradores de credenciales de Git o generarlos manualmente. Se recomienda revisar nuestra guía de autenticación para ayudarle a elegir el mecanismo de autenticación adecuado. Los PAT sirven como una alternativa sencilla para proyectos más pequeños que no necesitan una solución extensa. A menos que un administrador de credenciales esté en uso, los usuarios deben escribir sus credenciales cada vez.

Creación de un PAT

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

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

    Captura de pantalla que muestra la selección, Tokens de acceso personal.

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

    Captura de pantalla que muestra la selección, Nuevo token.

  4. Asigne un nombre al token, seleccione la organización en la que desea usar el token y, a continuación, establezca el token para que expire automáticamente después de un número establecido de días.

    Captura de pantalla que muestra la entrada de la información básica del token.

  5. Seleccione los ámbitos de este token para autorizar las tareas específicas.

    Por ejemplo, para crear un token para permitir que un agente de compilación y versión se autentique en Azure DevOps, limite el ámbito del token a grupos de agentes (leer y administrar). Para leer eventos de registro de auditoría y administrar y eliminar secuencias, seleccione Leer registro de auditoría y, a continuación, seleccione Crear.

    Captura de pantalla que muestra los ámbitos seleccionados para un PAT.

    Nota:

    Es posible que esté restringido a la creación de PAT de ámbito completo. Si es así, el administrador de Azure DevOps en el identificador de Microsoft Entra ha habilitado una directiva que le limita a un conjunto de ámbitos definido personalizado específico. Para obtener más información, consulte Administración de PAT con directivas o Restricción de la creación de PAT de ámbito completo. Para un PAT definido personalizado, el ámbito necesario para acceder a la API de gobernanza de componentes, vso.governance, no se puede seleccionar en la interfaz de usuario.

  6. Cuando haya terminado, copie el token y almacénelo en una ubicación segura. Para su seguridad, no se vuelve a mostrar.

    Captura de pantalla que muestra cómo copiar el token en el Portapapeles.

Use el PAT en cualquier lugar donde se requieran las credenciales de usuario para la autenticación en Azure DevOps.

Importante

  • Controle un PAT con la misma precaución que su contraseña y guárdelo en secreto.
  • Para las organizaciones respaldadas por microsoft Entra ID, es necesario iniciar sesión con el nuevo PAT en un plazo de 90 días; si no lo hace, el PAT está inactivo. Para obtener más información, consulte Frecuencia de inicio de sesión de usuario para el acceso condicional.

Notificaciones

Durante la vida útil de un PAT, los usuarios reciben dos notificaciones: la primera en el momento de la creación y la segunda siete días antes de su expiración.

Después de crear un PAT, recibirá una notificación similar al ejemplo siguiente. Esta notificación sirve como confirmación de que el PAT se agregó correctamente a su organización.

Captura de pantalla que muestra la notificación creada por PAT.

En la imagen siguiente se muestra un ejemplo de la notificación de siete días antes de que expire el PAT.

Captura de pantalla que muestra la notificación de expiración cercana a PAT.

Notificación inesperada

Si recibe una notificación pat inesperada, puede significar que un administrador o una herramienta crearon una PAT automáticamente. Aquí hay algunos ejemplos.

  • Se crea un token denominado "git: https://MyOrganization.visualstudio.com/ en MyMachine" al conectarse a un repositorio de Git de Azure DevOps a través de git.exe.
  • Se crea un token denominado "Service Hooks: : App de Azure Service: : Deploy web app" cuando usted o un administrador configuran una implementación de aplicación web de App de Azure Service.
  • Se crea un token denominado "WebAppLoadTestCDIntToken" cuando usted o un administrador configuran pruebas de carga web como parte de una canalización.
  • Se crea un token denominado "Integración de Microsoft Teams" cuando se configura una extensión de mensajería de integración de Microsoft Teams.

Advertencia

Si sospecha que existe un PAT en caso de error, considere la posibilidad de revocar el PAT y cambiar la contraseña. Como usuario de Microsoft Entra, consulte con el administrador para ver si la organización la usó un origen o ubicación desconocidos. Consulte también las preguntas más frecuentes sobre las comprobaciones pat accidentales a repositorios públicos de GitHub.

Usar un PAT

Su PAT actúa como su identidad digital, lo que representa cuando se utiliza, de forma muy similar a una contraseña.

Git

Las interacciones de Git requieren un nombre de usuario, que puede ser cualquier cosa excepto la cadena vacía. Para usar un PAT con autenticación http básica, use Base64-encode para $MyPat, que se incluye en el siguiente bloque de código.

En PowerShell, escriba el código siguiente.

$MyPat = 'yourPat'
$headerValue = "Authorization: Basic " + [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(":" + $MyPat))
$env:GIT_AUTH_HEADER = $headerValue

git --config-env=http.extraheader=GIT_AUTH_HEADER clone https://dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName

Para mantener el token más seguro, use administradores de credenciales para que no tenga que escribir las credenciales cada vez. Se recomienda el Administrador de credenciales de Git. Se requiere Git para Windows .

Repositorios existentes

En el caso de los repositorios existentes, si ya ha agregado el origen mediante el nombre de usuario, ejecute primero el siguiente comando.

git remote remove origin

De lo contrario, ejecute el siguiente comando.

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

Uso de un PAT en el código

Puede usar un PAT en el código.

Para proporcionar el PAT a través de un encabezado HTTP, primero conviértalo en una Base64 cadena. En el ejemplo siguiente se muestra cómo convertir a Base64 mediante C#.


Authorization: Basic BASE64_USERNAME_PAT_STRING

A continuación, se puede proporcionar la cadena resultante como un encabezado HTTP en el formato siguiente.

En el ejemplo siguiente se usa la clase HttpClient en 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());
    }
}

Sugerencia

Al usar variables, agregue un $ al principio de la cadena, como en el ejemplo siguiente.

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());
   }
}

Cuando el código funciona, es un buen momento para cambiar de autenticación básica a OAuth.

Para obtener más información y ejemplos de cómo usar PAT, consulte los siguientes artículos:

Modificación de un PAT

Puede volver a generar, ampliar un PAT o modificar su ámbito. Una vez regenerado, el PAT anterior se convierte en no autorizado.

  1. En la página principal, abra la configuración del usuario y, a continuación, seleccione Perfil.

    Captura de pantalla que muestra la secuencia de botones para seleccionar modificar un PAT.

  2. En Seguridad, seleccione Tokens de acceso personal. Seleccione el token que desea modificar y, a continuación , Editar.

    Captura de pantalla que muestra el botón Editar resaltado para modificar PAT.

  3. Edite el nombre del token, la expiración del token o el ámbito de acceso asociado al token y, a continuación, seleccione Guardar.

    Captura de pantalla que muestra PAT modificado.

Revocar un PAT

Puede revocar una PAT en cualquier momento, por muchas razones.

  1. En la página principal, abra la configuración del usuario y, a continuación, seleccione Perfil.

    Captura de pantalla que muestra la secuencia de botones para seleccionar, Team Services, la página Vista previa y revocar un PAT.

  2. En Seguridad, seleccione Tokens de acceso personal. Seleccione el token para el que desea revocar el acceso y, a continuación, seleccione Revocar.

    Captura de pantalla que muestra la selección para revocar un solo token o todos los tokens.

  3. Seleccione Revocar en el cuadro de diálogo de confirmación.

    Captura de pantalla que muestra la pantalla de confirmación para revocar PAT.

Preguntas más frecuentes

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

R: Asegúrese de que ha iniciado sesión en la organización en la que está el ámbito de PAT. Puede ver todos los PAT mientras ha iniciado sesión en cualquier organización en el mismo identificador de Entra de Microsoft, pero solo puede editar tokens con ámbito de organización cuando haya iniciado sesión en la organización a la que se limita.

P: ¿Qué ocurre con un PAT si una cuenta de usuario está deshabilitada?

R: Una vez que un usuario ha quitado de Azure DevOps, el PAT se invalida en un plazo de 1 hora. Si su organización está conectada al identificador de Entra de Microsoft, el PAT también se invalida en el identificador de Microsoft Entra, ya que pertenece al usuario. Se recomienda que el usuario gire su PAT a otra cuenta de usuario o servicio para mantener los servicios en ejecución.

P: ¿Hay alguna manera de renovar un PAT a través de la API REST?

R: Sí, hay una manera de renovar, administrar y crear PAT mediante nuestras API de administración del ciclo de vida de PAT. Para obtener más información, consulte Administración de PAT mediante la API REST y nuestras preguntas más frecuentes.

P: ¿Puedo usar la autenticación básica con todas las API REST de Azure DevOps?

R: No. Puede usar la autenticación básica con la mayoría de las API REST de Azure DevOps, pero las organizaciones y los perfiles solo admiten OAuth. Para más información, consulte Administración de PAT mediante la API REST.

P: ¿Qué ocurre si se comprueba accidentalmente mi PAT en un repositorio público en GitHub?

R: Azure DevOps examina los PAT protegidos en repositorios públicos en GitHub. Cuando encontramos un token filtrado, enviamos inmediatamente una notificación por correo electrónico detallada al propietario del token y registramos un evento en el registro de auditoría de la organización de Azure DevOps. A menos que deshabilite la directiva Revocar automáticamente tokens de acceso personal filtrados, revocamos inmediatamente el PAT filtrado. Animamos a los usuarios afectados a mitigar inmediatamente revocando el token filtrado y reemplazandolo por un nuevo token.

Para obtener más información, consulte Revocación automática de PAT filtradas.

P: ¿Puedo usar un token de acceso personal como ApiKey para publicar paquetes NuGet en una fuente de Azure Artifacts mediante la línea de comandos dotnet/nuget.exe?

R: No. Azure Artifacts no admite el paso de un token de acceso personal como ApiKey. Al usar un entorno de desarrollo local, se recomienda instalar el Proveedor de credenciales de Azure Artifacts para autenticarse con Azure Artifacts. Para obtener más información, vea los ejemplos siguientes: dotnet, NuGet.exe. Si desea publicar los paquetes mediante Azure Pipelines, use la tarea Autenticación de NuGet para autenticarse con el ejemplo de fuente.

P: ¿Por qué mi PAT detuvo el trabajo?

R: La autenticación pat requiere que inicie sesión periódicamente en Azure DevOps mediante el flujo de autenticación completo. Una vez cada 30 días es suficiente para muchos, pero es posible que tenga que iniciar sesión con más frecuencia que eso en función de la configuración de Microsoft Entra. Si el PAT deja de funcionar, pruebe primero a iniciar sesión en su organización, asegurándose de que pasa por el símbolo del sistema de autenticación completo. Si su PAT todavía no funciona después de eso, compruebe si su PAT ha expirado.