Usar tokens de acesso pessoal
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Os Tokens de acesso Pessoal (PATs) servem como uma senha alternativa para autenticação no Azure DevOps. Os PATs identificam você e determinam sua acessibilidade e escopo de acesso. Portanto, trate os PATs com o mesmo nível de precaução que as senhas.
Importante
É recomendável usar tokens do Microsoft Entra. Para obter mais informações sobre nossos esforços para reduzir o uso do PAT, consulte nosso blog. Consulte nossas diretrizes de autenticação para escolher o mecanismo de autenticação apropriado para suas necessidades.
Quando você usa ferramentas da Microsoft, sua conta da Microsoft (MSA) ou do Microsoft Entra ID é reconhecida e suportada. Se você utiliza ferramentas que não dão suporte a contas Microsoft Entra ou não queira compartilhar suas credenciais primárias, os PATs podem ser uma alternativa adequada. No entanto, é recomendável usar tokens do Microsoft Entra em vez de PATs sempre que possível.
Você pode gerenciar PATs por meio dos seguintes métodos:
- Interface do usuário (UI): Por meio das configurações do usuário, conforme detalhado neste artigo.
- APIs de Gerenciamento de Ciclo de Vida do PAT
- Gerenciadores de credenciais do Git para operações do Git. Os gerenciadores de credenciais facilitam o gerenciamento de tokens. Sem um, os usuários devem inserir suas credenciais todas as vezes.
Pré-requisitos
Categoria | Requisitos |
---|---|
Permissões | Permissão para acessar e modificar as configurações do usuário em que os PATs são gerenciados. - Vá para seu perfil e selecione Configurações de usuário>Tokens de Acesso Pessoal. Se você pode ver e gerenciar seus PATs aqui, então tem as permissões necessárias. - Vá para seu projeto e selecione Configurações do projeto>Permissões. Encontre sua conta de usuário na lista e verifique as permissões atribuídas a você. Procure permissões relacionadas ao gerenciamento de tokens ou configurações de usuário. - Se sua organização tiver políticas em vigor, um Administrador do Azure DevOps talvez precise conceder permissões específicas ou adicioná-lo a uma lista de permissões para criar e gerenciar PATs. - Os PATs estão vinculados à conta de usuário que criou o token. Dependendo das tarefas executadas pelo PAT, você pode precisar de mais permissões por conta própria. |
Níveis de Acesso | No mínimo, acesso Básico. |
Tarefas | Use os PATs somente quando necessário e alterne-os sempre periodicamente. |
Criar um PAT
Entre em sua organização (
https://dev.azure.com/{Your_Organization}
).Na sua página inicial, abra as configurações do usuário
e selecione Tokens de acesso pessoal.
Selecione + New Token.
Nomeie seu token, selecione a organização em que deseja usar o token e defina seu token para expirar automaticamente após um determinado número de dias.
Selecione os escopos para esse token, para autorizar as suas tarefas específicas.
Por exemplo, para criar um token para um agente de build e versão para autenticação no Azure DevOps, defina o escopo do token como Pools de Agentes (Ler e gerenciar). Para ler eventos de logs de auditoria e gerenciar ou excluir fluxos, selecione Ler Log de Auditoria e, em seguida, selecione Criar.
Observação
Você poderia ser impedido de criar PATs de escopo completo. Nesse caso, o Administrador do Azure DevOps no Microsoft Entra ID habilitou uma política que limita você a um conjunto específico de escopos definidos de forma personalizada. Para obter mais informações, consulte Gerenciar PATs com políticas/Restringir a criação de PATs de escopo completo. No caso de um PAT definido personalizado, o escopo necessário para acessar a API de Governança de Componentes,
vso.governance
, não é selecionável na interface do usuário.Quando terminar, copie o token e armazene-o em um local seguro. Para a sua segurança, ele não é exibido novamente.
Utilize seu PAT em qualquer lugar em que as suas credenciais de usuário sejam necessárias para autenticação no Azure DevOps.
Importante
- Trate um PAT com a mesma precaução que a sua senha e mantenha-o confidencial.
- Entre com seu novo PAT em um prazo de 90 dias, no caso de organizações com suporte do Microsoft Entra ID, caso contrário, o PAT se tornará inativo. 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ê receberá uma notificação parecida ao exemplo a seguir. Essa notificação serve como confirmação de que seu PAT foi adicionado com êxito à sua organização.
A imagem a seguir mostra um exemplo de notificação de sete dias antes de o PAT expirar.
Para obter mais informações, consulte Configurar um servidor SMTP e personalizar email para alertas e solicitações de feedback.
Notificação inesperada
Se você receber uma notificação PAT inesperada, isso pode indicar que um administrador ou uma ferramenta criou um PAT para você. Estes são alguns exemplos:
- Quando você se conecta a um repositório Git do Azure DevOps por meio de git.exe, um token chamado "git:
https://dev.azure.com/{Your_Organization}
on YourMachine" é criado. - Um token chamado "Ganchos de Serviço: Serviço de Aplicativo do Azure: Implantar aplicativo Web" é criado quando você ou um administrador configura uma implantação de aplicativo Web do Serviço de Aplicativo do Azure.
- Um token chamado "WebAppLoadTestCDIntToken" é criado quando o teste de carga da Web é configurado como parte de um pipeline por você ou por 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
- Revogar o PAT (e alterar sua senha) se você suspeitar que ele existe por engano.
- Verifique com o administrador se você é um usuário do Microsoft Entra para ver se uma origem ou um local desconhecido acessou sua organização.
- Verifique as perguntas frequentes sobre Check-ins acidentais do PAT em repositórios públicos do GitHub.
Usar um PAT
Seu PAT serve como a sua identidade digital, parecido a uma senha. Use PATs como uma maneira rápida de fazer solicitações únicas ou criar um protótipo de aplicativo localmente.
Importante
Quando o código está funcionando, é um bom momento para mudar de autenticação básica para o Microsoft Entra OAuth. Você pode usar tokens de ID do Microsoft Entra em qualquer lugar onde um PAT seja usado, a menos que seja especificado de outra forma mais adiante neste artigo.
Você pode usar um PAT em seu código para autenticar solicitações APIs REST e automatizar fluxos de trabalho. Para fazer isso, inclua o PAT no cabeçalho de autorização de suas solicitações HTTP.
Para fornecer o PAT por meio de um cabeçalho HTTP, primeiro converta-o em uma cadeia de caracteres Base64
. O exemplo a seguir mostra como converter para Base64
utilizando C#.
Authorization: Basic BASE64_USERNAME_PAT_STRING
A cadeia de caracteres resultante pode ser fornecida como um cabeçalho HTTP no formato a seguir.
O exemplo a seguir utiliza 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());
}
}
Dica
Quando você estiver utilizando 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());
}
}
Mais alguns exemplos de como usar PATs podem ser encontrados nos artigos seguintes:
- Autenticar com seu repositório Git
- Configure os gerenciadores de credenciais do Git (GCM) para se conectar aos repositórios do Git
- Usar NuGet em um Mac
- Autenticar clientes de relatórios
- Introdução à CLI do Azure DevOps
Modificar um PAT
Execute as etapas abaixo para:
- Regenerar um PAT para criar um novo token, o que invalida o anterior.
- Ampliar um PAT para aumentar seu período de validade.
- Modificar o escopo de um PAT para alterar suas permissões.
Em sua página inicial, abra suas configurações de usuário e depois selecione Perfil.
Em Segurança, selecione Tokens de acesso pessoal. Selecione o token que deseja modificar e, em seguida, Editar.
Edite o nome, a data de expiração ou o escopo de acesso associados ao token e selecione Salvar.
Revogar um PAT
Você pode revogar um PAT a qualquer momento pelos motivos abaixo, e outros:
- Revogue um PAT caso suspeite que ele esteja comprometido.
- Revogue um PAT quando ele não for mais necessário.
- Revogue um PAT para impor políticas de segurança ou requisitos de conformidade.
Em sua página inicial, abra suas configurações de usuário e depois selecione Perfil.
Em Segurança, selecione Tokens de acesso pessoal. Selecione o token para o qual você deseja revogar o acesso e, em seguida, selecione Revogar.
Na caixa de diálogo de confirmação, selecione Revogar.
Para obter mais informações, confira Revogar PATs de usuário para administradores.
Alterações no 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 detecção de segredo disponíveis por meio de nossas ferramentas de detecção de PAT vazadas ou ofertas de parceiros. Esse novo formato de PAT segue o formato recomendado em todos os produtos da Microsoft. A inclusão de bits mais identificáveis melhora a taxa de detecção de falsos positivos dessas ferramentas de detecção de segredos e nos permite mitigar vazamentos detectados com maior rapidez.
Principais alterações:
- Aumento do comprimento do token: Agora os novos tokens têm 84 caracteres, sendo 52 caracteres de dados aleatórios. Esse comprimento maior melhora a entropia geral, fazendo com que os tokens sejam mais resistentes a possíveis ataques de força bruta.
- Assinatura fixa: Os tokens emitidos pelo nosso serviço incluem uma assinatura
AZDO
fixa nas posições 76-80.
Ação necessária:
- Regenerar PATs existentes: É altamente recomendável regenerar todos os PATs em uso atualmente, para aproveitar esses aprimoramentos de segurança.
- Suporte ao integrador: Os integradores devem atualizar seus sistemas para acomodar comprimentos de novos token e dos já existentes.
Importante
Ambos os formatos permanecem válidos em um futuro próximo, mas incentivamos ativamente os clientes a fazerem a transição para o novo formato de 84 caracteres. À medida que a adoção do novo formato aumenta, estamos considerando desativar o formato mais antigo de 52 caracteres e todos os tokens emitidos nesse estilo.
Práticas recomendadas para usar PATs
Alternativas a serem consideradas
- Adquira um token do Microsoft Entra por meio da CLI do Azure para solicitações ad hoc que duram uma hora em vez de criar um PAT de vida mais longa.
- Use gerentes de credenciais como Git Credential Manager ou Gerenciador de Credenciais do Azure Artifacts para simplificação do gerenciamento de credenciais. Essas ferramentas podem oferecer opções para usar tokens do Microsoft Entra como a autenticação padrão em vez de PATs.
Criação de PATs
- Evite colocar dados pessoais no nome do PAT. Não renomeie a cadeia de caracteres do token PAT como o nome do seu token.
- Selecione apenas a organização que seu PAT precisa acessar se não precisar acessar várias organizações. Para fluxos de trabalho que exigem acesso a várias organizações, crie um PAT global separado para esse fluxo de trabalho.
- Escolha apenas os escopos necessários para cada PAT. Se possível, crie vários PATs para cada fluxo de trabalho de escopo reduzido em vez de um único PAT com escopo total. Se o PAT precisar apenas de permissões de leitura, não forneça permissões de gravação até que seja necessário.
- Mantenha a vida útil do PAT curta (semanalmente é ideal, ainda mais curto é melhor ainda) e faça rodízio deles ou regenere-os regularmente pela interface do usuário ou pelas APIs de Gerenciamento do Ciclo de Vida do PAT .
Gerenciamento de PATs
- Sempre armazene seus PATs em uma solução segura de gerenciamento de chaves, como o Azure KeyVault.
- Revogue os PATs quando eles não forem mais necessários. Os administradores de locatários podem revogar PATs para seus usuários da organização se o PAT estiver comprometido.
- Alterne seus PATs para usar o novo formato PAT para melhor detecção e revogação de segredos vazados por nossas ferramentas originais.
Para administradores
Administradores de inquilinos podem definir políticas para restringir a criação global de PATs, a criação de PATs com escopo completo e a duração estendida de PATs. Eles também podem habilitar políticas para revogar automaticamente PATs vazados detectados em repositórios públicos. Use essas políticas para melhorar a segurança da sua empresa.
Perguntas Frequentes
P: Por que não posso editar ou regenerar um PAT com escopo para uma organização individual?
R: Faça login na organização cujo escopo abrange seu PAT. Você pode visualizar todos os tokens de acesso pessoal (PATs) enquanto estiver conectado a qualquer organização na mesmo Microsoft Entra ID, mas só poderá editar tokens com escopo da organização quando estiver conectado à organização específica.
P: O que acontece com um PAT se uma conta de usuário for desativada?
R: Quando um usuário é removido do Azure DevOps, o PAT é invalidado no lapso de 1 hora. Se a sua organização estiver conectada ao Microsoft Entra ID, o PAT também será invalidado no Microsoft Entra ID, pois ela pertence ao usuário. Recomendamos rotacionar o PAT para outro usuário ou conta de serviço, para manter os serviços em execução.
P: Existe uma maneira de renovar um PAT por meio da API REST?
R: Sim, você pode renovar, gerenciar e criar PATs usando nossas APIs de Gerenciamento de Ciclo de Vida do PAT.
P: posso usar PATs 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 organizações e perfis e as APIs de ciclo de vida de gerenciamento de PAT só dão suporte ao OAuth do Microsoft Entra. Para obter um exemplo sobre como configurar um aplicativo Microsoft Entra para chamar essas APIs, consulte Gerenciar PATs usando a API REST.
P: O que acontece se eu fizer check-in do meu PAT acidentalmente em um repositório público no GitHub?
R: O Azure DevOps rastreia PATs com check-in em repositórios públicos no GitHub. Quando encontramos um token vazado, enviamos imediatamente uma notificação detalhada por email ao proprietário do token e registramos um evento no log de auditoria da organização no Azure DevOps. A menos que você tenha desabilitado a política Revogar automaticamente tokens de acesso pessoal vazados, o PAT vazado é imediatamente revogado por nós. Incentivamos os usuários afetados a mitigarem o problema revogando o token vazado e substituindo-o por um novo token. Para obter mais informações, consulte Revogar automaticamente PATs vazados.
P_ Posso usar um token de acesso pessoal, como uma APIKey, para publicar pacotes NuGet em um feed do Azure Artifacts usando a linha de comando dotnet/nuget.exe?
R: Não. O Azure Artifacts não dá suporte à passagem de um PAT como uma Chave de API. Ao usar um ambiente de desenvolvimento local, recomendamos instalar o Provedor de Credenciais do Azure Artifacts para autenticar com o Azure Artifacts. Para obter mais informações, consulte os seguintes exemplos: dotnet e NuGet.exe. Se quiser publicar seus pacotes usando o Azure Pipelines, use a tarefa de Autenticação NuGet para autenticar com seu feed. Confira o exemplo.
P: Por que meu PAT parou de funcionar?
R: A autenticação PAT exige que você entre regularmente no Azure DevOps utilizando o fluxo de autenticação completo. Para muitos usuários, entrar uma vez a cada 30 dias é suficiente, mas pode ser que você tenha que entrar com mais frequência, dependendo da configuração do Microsoft Entra. Se o seu PAT parar de funcionar, primeiro tente entrar na sua organização e preencher o prompt de autenticação completo. Se o seu PAT continuar não funcionando, comprove se ele expirou.
Habilite a Autenticação Básica do IIS invalida usando PATs para Azure DevOps Server. Para obter mais informações, consulte Usando a Autenticação Básica do IIS no ambiente local do Azure DevOps.
P: Como faço para criar chaves de acesso que não estejam vinculadas a uma pessoa específica, para fins de implantação?
R: No Azure DevOps, você pode criar chaves de acesso que não estão vinculadas a uma pessoa específica usando entidades de serviço ou identidades gerenciadas. Para obter mais informações, consulte Gerenciar conexões de serviço e Usar segredos do Azure Key Vault no Azure Pipelines.
Artigos relacionados
- Usar políticas para gerenciar tokens de acesso pessoal para usuários
- Revogar PATs de usuário (para administradores)
- Saiba mais sobre segurança, autenticação e autorização
- Verificar permissões e acesso padrão para o Azure DevOps
- Gerenciar tokens de acesso pessoal (PATs) usando a API REST
- Gerenciar entidades de serviço e identidades gerenciadas no Azure DevOps