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:
- Interface do usuário (UI): Através das configurações do usuário, conforme detalhado neste artigo
- API de Gestão do Ciclo de Vida da PAT
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
Inicie sessão na 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 + Novo Token.
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.
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.
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.Quando terminar, copie o token e armazene-o em um local seguro. Para sua segurança, ele não é exibido novamente.
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.
A imagem seguinte mostra um exemplo da notificação de sete dias antes de a PAT expirar.
Para obter mais informações, consulte Configurar um servidor SMTP e personalizar emails para alertas e solicitações de feedback.
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:
- Gerenciadores de credenciais do Git
- APIs REST
- NuGet num Mac
- Clientes relatores
- Introdução à CLI do Azure DevOps
Modificar uma PAT
Você pode regenerar, estender um PAT ou alterar seu escopo. Uma vez regenerado, o PAT anterior torna-se não autorizado.
Na página inicial, abra as configurações do usuário e selecione Perfil.
Em Segurança, selecione Tokens de acesso pessoal. Selecione o token que deseja modificar e, em seguida , Editar.
Edite o nome do token, a expiração do token ou o escopo de acesso associado ao token e selecione Salvar.
Revogar uma PAT
Pode revogar uma PAT a qualquer momento, por várias razões.
Na página inicial, abra as configurações do usuário e selecione Perfil.
Em Segurança, selecione Tokens de acesso pessoal. Selecione o token para o qual pretende revogar o acesso e, em seguida, selecione Revogar.
Selecione Revogar na caixa de diálogo de confirmação.
Artigos relacionados
- Sobre segurança, autenticação e autorização
- Permissões predefinidas e acesso ao Azure DevOps
- Revogar PATs de usuário (para administradores)
- Gerenciar entidades de serviço e identidades gerenciadas no Azure DevOps
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.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários