Utilizar tokens de acesso pessoal

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Um Token de Acesso Pessoal (PAT) serve como uma senha alternativa para autenticação no Azure DevOps. Este artigo orienta você na criação, uso, modificação e revogação de PATs para o Azure DevOps.

Sobre os tokens de acesso pessoal

Use uma PAT como suas credenciais de segurança para o Azure DevOps. Esta PAT identifica-o e determina a sua acessibilidade e âmbito de acesso. Portanto, trate os PATs com o mesmo nível de cuidado que as senhas.

Quando utiliza ferramentas Microsoft, a sua conta Microsoft (MSA) ou ID Microsoft Entra é um método reconhecido e suportado. Mas, se você usar ferramentas que não sejam da Microsoft que não ofereçam suporte a contas Microsoft ou Microsoft Entra, ou se preferir não compartilhar suas credenciais principais com essas ferramentas, os PATs são uma alternativa.

Crie e gerencie PATs usando os seguintes métodos:

Para estabelecer PATs para ferramentas que não sejam da Microsoft, você pode usar gerenciadores de credenciais Git ou gerá-los manualmente. Recomendamos que reveja as nossas orientações de autenticação para escolher o mecanismo de autenticação adequado. Os PATs oferecem uma alternativa simples para projetos menores que não exigem uma solução extensa. Sem um gerenciador de credenciais, os usuários inserem suas credenciais a cada vez.

Criar uma PAT

  1. Inicie sessão na sua organização (https://dev.azure.com/{Your_Organization}).

  2. Na sua página inicial, abra as configurações do usuário e selecione Tokens de acesso pessoal.

    Captura de ecrã a mostrar a seleção, Tokens de Acesso Pessoal.

  3. Selecione + Novo Token.

    Captura de tela mostrando a seleção, Novo Token.

  4. Nomeie seu token, selecione a organização onde você deseja usar o token e defina seu token para expirar automaticamente após um número definido de dias.

    Captura de tela mostrando a entrada de informações básicas de token.

  5. Selecione os escopos para este token a autorizar para suas tarefas específicas.

    Por exemplo, para criar um token para que um agente de compilação e liberação se autentique no Azure DevOps, defina o escopo do token como Pools de Agentes (Ler & gerenciar). Para ler eventos de log de auditoria e gerenciar ou excluir fluxos, selecione Ler Log de Auditoria e clique em Criar.

    Captura de tela mostrando escopos selecionados para um PAT.

    Nota

    Você pode ser impedido de criar PATs com escopo completo. Nesse caso, seu Administrador de DevOps do Azure na ID do Microsoft Entra habilitou uma política que limita você a um conjunto específico de escopos personalizados. Para obter mais informações, consulte Gerenciar PATs com políticas/Restringir a criação de PATs com escopo completo. Para um PAT personalizado, o escopo necessário para acessar a API de Governança de Componentes, vso.governance, não pode ser selecionado na interface do usuário.

  6. Quando terminar, copie o token e armazene-o em um local seguro. Para sua segurança, ele não é exibido novamente.

    Captura de ecrã a mostrar como copiar o token para a área de transferência.

Use sua PAT em qualquer lugar em que suas credenciais de usuário sejam necessárias para autenticação no Azure DevOps.

Importante

  • Trate uma PAT com o mesmo cuidado que a sua palavra-passe e mantenha-a confidencial.
  • Inicie sessão com a sua nova PAT no prazo de 90 dias para organizações apoiadas pelo Microsoft Entra ID; caso contrário, a PAT fica inativa. Para obter mais informações, consulte Frequência de entrada do usuário para acesso condicional.

Notificações

Durante a vida útil de um PAT, os usuários recebem duas notificações - a primeira no momento da criação e a segunda sete dias antes de sua expiração.

Depois de criar um PAT, você recebe uma notificação semelhante ao exemplo a seguir. Esta notificação serve como confirmação de que a sua PAT foi adicionada com êxito à sua organização.

Captura de ecrã a mostrar a notificação criada pela PAT.

A imagem seguinte mostra um exemplo da notificação de sete dias antes de a PAT expirar.

Captura de ecrã a mostrar a notificação de quase expiração da PAT.

Notificação inesperada

Se receber uma notificação PAT inesperada, isso pode significar que um administrador ou ferramenta criou uma PAT para si. Seguem-se alguns exemplos.

  • Um token chamado "git: https://dev.azure.com/{Your_Organization} on YourMachine" é criado quando você se conecta a um repositório Git do Azure DevOps via git.exe.
  • Um token chamado "Ganchos de Serviço: : Serviço de Aplicativo do Azure: : Implantar aplicativo Web" é criado quando uma implantação de aplicativo Web do Serviço de Aplicativo do Azure é configurada por você ou por um administrador.
  • Um token chamado "WebAppLoadTestCDIntToken" é criado quando o teste de carga da Web é configurado como parte de um pipeline por você ou um administrador.
  • Um token chamado "Integração do Microsoft Teams" é criado quando uma Extensão de Mensagens de Integração do Microsoft Teams é configurada.

Aviso

  • Revogue a PAT se suspeitar que ela existe por engano. Siga os passos para revogar a PAT e alterar a sua palavra-passe.
  • Verifique com o administrador se você é um usuário do Microsoft Entra para ver se sua organização foi acessada por uma fonte ou local desconhecido.
  • Consulte as Perguntas frequentes sobre check-ins acidentais da PAT em repositórios públicos do GitHub.

Utilizar uma PAT

O seu PAT serve como a sua identidade digital, tal como uma palavra-passe.

Git

As interações do Git exigem um nome de usuário, que pode ser qualquer coisa, exceto uma cadeia de caracteres vazia. Para usar uma PAT com autenticação básica HTTP, Base64-encode o seu $MyPat como mostrado no bloco de código a seguir.

No PowerShell, insira o código a seguir.

$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

Use os gerenciadores de credenciais para evitar inserir suas credenciais toda vez e manter seu token mais seguro:

Acordos de recompra existentes

Para repositórios existentes, se você já adicionou a origem usando o nome de usuário, execute o seguinte comando primeiro.

git remote remove origin

Caso contrário, execute o seguinte comando.

git remote add origin https://dev.azure.com/<PAT>@<company_machineName>:/<path-to-git-repo> path to git repo = <project name>/_git/<repo_name> git push -u origin --all

Utilize uma PAT no seu código

Pode utilizar uma PAT no seu código para autenticar pedidos de API e automatizar fluxos de trabalho. Para tal, inclua a PAT no cabeçalho de autorização dos seus pedidos HTTP.

Para fornecer a PAT através de um cabeçalho HTTP, primeiro converta-a numa Base64 cadeia de caracteres. O exemplo a seguir mostra como converter para Base64 usar C#.


Authorization: Basic BASE64_USERNAME_PAT_STRING

A cadeia de caracteres resultante pode ser fornecida como um cabeçalho HTTP no seguinte formato.

O exemplo a seguir usa a classe HttpClient em 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());
    }
}

Gorjeta

Quando você estiver usando variáveis, adicione um $ no início da cadeia de caracteres, como no exemplo a seguir.

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 seu código está funcionando, é um bom momento para mudar de autenticação básica para OAuth.

Para obter mais informações e exemplos de como usar PATs, consulte os seguintes artigos:

Modificar uma PAT

Siga os seguintes passos para:

  • Regenere uma PAT para criar um novo token, que invalida o anterior.
  • Prolongar um PAT para aumentar o seu período de validade.
  • Alterar o âmbito de uma PAT para alterar as suas permissões.
  1. Na página inicial, abra as configurações do usuário e selecione Perfil.

    Captura de tela mostrando a sequência de botões a serem selecionados para modificar um PAT.

  2. Em Segurança, selecione Tokens de acesso pessoal. Selecione o token que deseja modificar e, em seguida , Editar.

    Captura de tela mostrando o botão Editar realçado para modificar o PAT.

  3. Edite o nome do token, a expiração do token ou o escopo de acesso associado ao token e selecione Salvar.

    Captura de tela mostrando PAT modificado.

Revogar uma PAT

Pode revogar uma PAT a qualquer momento por estes e outros motivos:

  • Revogue uma PAT se suspeitar que ela foi comprometida.
  • Revogue uma PAT quando já não for necessária.
  • Revogar uma PAT para aplicar políticas de segurança ou requisitos de conformidade.
  1. Na página inicial, abra as configurações do usuário e selecione Perfil.

    Captura de tela mostrando a sequência de botões a serem selecionados, Team Services, página Visualizar e revogar um PAT.

  2. Em Segurança, selecione Tokens de acesso pessoal. Selecione o token para o qual pretende revogar o acesso e, em seguida, selecione Revogar.

    Captura de tela mostrando a seleção para revogar um único token ou todos os tokens.

  3. Selecione Revogar na caixa de diálogo de confirmação.

    Captura de tela mostrando a tela de confirmação para revogar o PAT.

Para obter mais informações, consulte Revogar PATs de usuário para administradores.

Alterações ao formato

A partir de julho de 2024, alteramos significativamente o formato dos PATs emitidos pelo Azure DevOps. Essas alterações fornecem mais benefícios de segurança e melhoram as ferramentas de deteção de segredos disponíveis por meio de nossas ofertas de parceiros, como o GitHub Advanced Security for Azure DevOps. Este novo formato PAT segue o formato recomendado em todos os produtos Microsoft. A inclusão de bits mais identificáveis melhora a taxa de deteção de falsos positivos dessas ferramentas de deteção secretas e nos permite mitigar vazamentos detetados mais rapidamente.

Principais alterações:

  • Maior comprimento do token: Os novos tokens agora têm 84 caracteres, com 52 caracteres sendo dados aleatórios. Esse aumento de comprimento melhora a entropia geral, tornando os tokens mais resistentes a possíveis ataques de força bruta.
  • Assinatura fixa: Os tokens emitidos pelo nosso serviço incluem uma assinatura fixa AZDO nas posições 76-80.

Ação necessária:

  • Regenerar PATs existentes: é altamente recomendável regenerar todos os PATs atualmente em uso para aproveitar esses aprimoramentos de segurança.
  • Suporte ao integrador: os integradores devem atualizar seus sistemas para acomodar os comprimentos de token novos e existentes.

Importante

Ambos os formatos permanecem válidos no futuro próximo, mas encorajamos ativamente os clientes a fazer a transição para o novo formato de 84 caracteres. À medida que a adoção do novo formato aumenta, consideramos aposentar o formato antigo de 52 caracteres e todos os tokens emitidos nesse estilo.

FAQs

P: Por que não consigo editar ou regenerar uma PAT com escopo para uma única organização?

R: Certifique-se de que tem sessão iniciada na organização onde o PAT tem o âmbito. Você pode exibir todos os seus PATs enquanto estiver conectado a qualquer organização na mesma ID do Microsoft Entra, mas só poderá editar tokens com escopo da organização quando estiver conectado à organização para a qual eles têm escopo.

P: O que acontece a uma PAT se uma conta de utilizador estiver desativada?

R: Quando um usuário é removido do Azure DevOps, a PAT é invalidada em 1 hora. Se a sua organização estiver ligada ao Microsoft Entra ID, a PAT também invalida no Microsoft Entra ID, uma vez que pertence ao utilizador. Recomendamos que a PAT seja transferida para outro utilizador ou conta de serviço para manter os serviços em execução.

P: Existe uma forma de renovar uma PAT através da API REST?

R: Sim, existe uma forma de renovar, gerir e criar PATs utilizando as nossas APIs de Gestão do Ciclo de Vida da PAT. Para obter mais informações, consulte Gerenciar PATs usando a API REST e as perguntas frequentes.

P: Posso usar a autenticação básica com todas as APIs REST do Azure DevOps?

R: Não. Você pode usar a autenticação básica com a maioria das APIs REST do Azure DevOps, mas as organizações e os perfis oferecem suporte apenas ao OAuth. Para obter mais informações, consulte Gerenciar PATs usando a API REST.

P: O que acontece se eu verificar acidentalmente a minha PAT num repositório público no GitHub?

R: O Azure DevOps verifica se há PATs verificados em repositórios públicos no GitHub. Quando encontramos um token vazado, enviamos imediatamente uma notificação por email detalhada para o proprietário do token e registramos um evento no log de auditoria da sua organização do Azure DevOps. A menos que você tenha desativado a política Revogar automaticamente tokens de acesso pessoal vazados, revogamos imediatamente o PAT vazado. Incentivamos os usuários afetados a mitigar o problema revogando o token vazado e substituindo-o por um novo token.

Para obter mais informações, consulte Revogar PATs vazados automaticamente.

P: Posso usar um token de acesso pessoal como uma ApiKey para publicar pacotes NuGet em um feed de Artefatos do Azure usando a linha de comando dotnet/nuget.exe?

R: Não. Os Artefactos do Azure não suportam a transmissão de um token de acesso pessoal como ApiKey. Ao utilizar um ambiente de desenvolvimento local, recomendamos que instale o Fornecedor de Credenciais dos Artefactos do Azure para se autenticar com os Artefactos do Azure. Para obter mais informações, veja os seguintes exemplos: dotnet, NuGet.exe. Se você quiser publicar seus pacotes usando o Azure Pipelines, use a tarefa NuGet Authenticate para autenticar com seu exemplo de feed.

P: Porque é que o meu PAT deixou de funcionar?

R: A autenticação PAT requer que inicie sessão regularmente no Azure DevOps utilizando o fluxo de autenticação completo. Entrar uma vez a cada 30 dias é suficiente para muitos usuários, mas talvez seja necessário entrar com mais frequência, dependendo da configuração do Microsoft Entra. Se a PAT deixar de funcionar, tente primeiro iniciar sessão na sua organização e conclua o pedido de autenticação completo. Se a sua PAT continuar a não funcionar, verifique se expirou.