Partilhar via


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) pode servir como uma senha alternativa para autenticação no Azure DevOps. Este artigo orienta você pelo processo de criação, utilização, modificação e revogação de PATs para DevOps do Azure.

Sobre os tokens de acesso pessoal

Um PAT (Personal Access Token) serve como suas credenciais de segurança para o Azure DevOps. Este PAT não só o identifica, mas também determina a sua acessibilidade e âmbito de acesso. Por isso, os PATs são tão importantes quanto as senhas e devem ser tratados com o mesmo nível de cautela.

Se estiver a utilizar ferramentas Microsoft, a sua conta Microsoft (MSA) ou ID Microsoft Entra é um método reconhecido e suportado. No entanto, se estiver a utilizar ferramentas de terceiros que não suportem contas Microsoft ou Microsoft Entra, ou se estiver relutante em partilhar as suas credenciais principais com estas ferramentas, os PATs são uma alternativa mais segura.

Crie e gerencie PATs das duas maneiras a seguir:

Para estabelecer PATs para ferramentas que não sejam da Microsoft, você pode usar gerenciadores de credenciais Git ou gerá-los manualmente. Recomendamos que você revise nossas diretrizes de autenticação para ajudá-lo a escolher o mecanismo de autenticação apropriado. Os PATs servem como uma alternativa simples para projetos menores que não precisam de uma solução extensa. A menos que um gerenciador de credenciais esteja em uso, os usuários devem inserir 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 permitir que um agente de compilação e liberação se autentique no Azure DevOps, limite o escopo do token a Pools de Agentes (Ler e gerenciar). Para ler eventos de log de auditoria e gerenciar e excluir fluxos, selecione Ler Log de Auditoria e selecione 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 definidos. Para obter mais informações, consulte Gerenciar PATs com políticas/Restringir a criação de PATs com escopo completo. Para um PAT personalizado definido, 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

  • Lide com uma PAT com o mesmo cuidado que a sua palavra-passe e mantenha-a secreta.
  • Para organizações apoiadas pelo Microsoft Entra ID, é necessário iniciar sessão com a sua nova PAT no prazo de 90 dias; se não o fizer, a PAT ficará 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://MyOrganization.visualstudio.com/ on MyMachine" é 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

Se suspeitar que existe um PAT por engano, considere a possibilidade de revogar o PAT e alterar a sua palavra-passe. Como usuário do Microsoft Entra, verifique com o administrador se sua organização foi usada por uma fonte ou local desconhecido. Consulte também as Perguntas frequentes sobre check-ins PAT acidentais em repositórios públicos do GitHub.

Utilizar uma PAT

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

Git

As interações do Git exigem um nome de usuário, que pode ser qualquer coisa, exceto a cadeia de caracteres vazia. Para utilizar uma PAT com autenticação básica HTTP, utilize Base64-encode para $MyPat, que está incluído no seguinte bloco de código.

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

Para manter seu token mais seguro, use gerenciadores de credenciais para não precisar inserir suas credenciais sempre. Recomendamos o Git Credential Manager. É necessário o Git para Windows .

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://<PAT>@<company_machineName>.visualstudio.com:/<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 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

Você pode regenerar, estender um PAT ou alterar seu escopo. Uma vez regenerado, o PAT anterior torna-se não autorizado.

  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 várias razõ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, 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.

FAQs

P: Por que não posso 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: Depois que 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 é invalidada no Microsoft Entra ID, uma vez que pertence ao utilizador. Recomendamos que o utilizador rode a sua PAT 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 nossas 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. Encorajamos os usuários afetados a mitigar imediatamente , 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. Uma vez a cada 30 dias é suficiente para muitos, mas você pode precisar entrar com mais frequência do que isso, dependendo da sua configuração do Microsoft Entra. Se a PAT deixar de funcionar, tente primeiro iniciar sessão na sua organização, garantindo que passa pelo pedido de autenticação completa. Se o seu PAT continuar a não funcionar depois disso, verifique se o PAT expirou.