Warning
Trate os tokens de acesso como uma senha. Para saber mais, confira Mantendo seus personal access token seguros.
Sobre os personal access tokens
Os Personal access token são uma alternativa ao uso de senhas para autenticação no GitHub Enterprise Server ao usar a API do GitHub ou a linha de comando.
Os Personal access tokens são usados para acessar recursos do GitHub em nome de si mesmo. Para acessar recursos em nome de uma organização ou para integrações de longa duração, você deve usar um GitHub App. Para saber mais, confira Sobre a criação de Aplicativos do GitHub.
Um token tem os mesmos recursos para acessar recursos e executar ações nesses recursos que o proprietário do token e é ainda mais limitado por quaisquer escopos ou permissões concedidos ao token. Um token não pode conceder recursos de acesso adicionais a um usuário. Por exemplo, um personal access token pode ser configurado com um escopo admin:org
, mas se o proprietário do token não for o proprietário da organização, o token não concederá acesso administrativo à organização.
Tipos de personal access token
No momento, o GitHub dá suporte a dois tipos de personal access tokens: fine-grained personal access tokens e personal access tokens (classic). O GitHub recomenda que você use fine-grained personal access tokens em vez de personal access tokens (classic) sempre que possível.
Tanto fine-grained personal access tokens quanto personal access tokens (classic) estão vinculados ao usuário que os gerou e ficarão inativos se o usuário perder o acesso ao recurso.
Os proprietários da organização podem definir uma política para restringir o acesso do personal access tokens (classic) à organização e os proprietários da empresa podem restringir o acesso de personal access tokens (classic) à empresa ou às organizações pertencentes à empresa. Para saber mais, confira Como configurar uma política de token de acesso pessoal para a organização.
Fine-grained personal access token
os Fine-grained personal access tokens têm várias vantagens de segurança em relação aos personal access tokens (classic):
- Cada token só pode acessar recursos pertencentes a um usuário ou uma organização.
- Cada token só pode acessar repositórios específicos.
- Cada token recebe permissões específicas, que oferecem mais controle do que os escopos concedidos a personal access tokens (classic).
- Os proprietários da organização podem exigir aprovação para fine-grained personal access tokens que possam acessar recursos na organização.
- Os proprietários corporativos podem exigir aprovação para fine-grained personal access tokens que possam acessar recursos na organização.
Personal access tokens (classic)
Personal access tokens (classic) são menos seguros. Entretanto, alguns recursos só funcionam com personal access tokens (classic):
- Somente personal access tokens (classic) têm acesso de gravação para repositórios públicos que não pertencem a você ou a uma organização da qual você não é membro.
- Somente personal access tokens (classic) têm acesso de gravação automaticamente para repositórios internos pertencentes à empresa. Fine-grained personal access tokens precisam receber acesso a repositórios internos.
- Os colaboradores externos só podem usar personal access tokens (classic) para acessar repositórios da organização nos quais são colaboradores.
- Somente personal access tokens (classic) podem acessar empresas. (O Fine-grained personal access token pode acessar organizações pertencentes a empresas.)
- Alguns Pontos de Extremidade de API REST só estão disponíveis com um personal access tokens (classic). Para determinar se um ponto de extremidade também oferece suporte a fine-grained personal access tokens, confira a documentação correspondente ou veja “Pontos de extremidade disponíveis para tokens de acesso pessoal refinados”.
Se você optar por usar um personal access token (classic), tenha em mente que ele concederá acesso a todos os repositórios dentro das organizações às quais você tem acesso, bem como a todos os repositórios pessoais em sua conta pessoal.
Mantendo seus personal access token seguros
Os Personal access token são como senhas e compartilham os mesmos riscos inerentes à segurança. Antes de criar um personal access token, considere se há um método mais seguro de autenticação disponível para você:
- Para acessar o GitHub por meio da linha de comando, você pode usar GitHub CLI ou o Gerenciador de Credenciais do Git em vez de criar um personal access token.
- Ao usar um personal access token em um fluxo de trabalho do GitHub Actions, considere se você pode usar o
GITHUB_TOKEN
interno. Para saber mais, confira Autenticação automática de token.
Se essas opções não forem possíveis e você precisar criar um personal access token, considere o uso de outro serviço de CLI para armazenar seu token com segurança.
Ao usar um personal access token em um script, você pode armazenar o token como um segredo e executar o script por meio do GitHub Actions. Para saber mais, confira Usar segredos em ações do GitHub.
Para saber mais sobre as melhores práticas, confira Manter suas credenciais de API seguras.
Como criar um fine-grained personal access token
Note
Fine-grained personal access token estão atualmente em beta e sujeitos a alterações. Para deixar comentários, confira a discussão de comentários.
-
No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
-
Na barra lateral esquerda, clique em Configurações do desenvolvedor.
-
Na barra lateral esquerda, em Personal access tokens, clique em Tokens refinados.
-
Clique em Gerar novo token.
-
Em Nome do token, insira um nome para ele.
-
Em Validade, selecione uma validade para o token. Vida útil infinita é permitida, mas pode ser bloqueada por uma política de vida útil máxima definida pela sua organização ou pelo proprietário da empresa. Para saber mais, confira Imponto uma política de vida útil máxima para personal access tokens.
-
Opcionalmente, em Descrição, adicione uma observação para descrever a finalidade do token.
-
Em Proprietário do recurso, selecione um proprietário de recurso. O token só poderá acessar recursos pertencentes ao proprietário do recurso selecionado. As organizações das quais você é membro não aparecerão, a menos que a organização aceite o fine-grained personal access tokens. Para saber mais, confira Como configurar uma política de token de acesso pessoal para a organização.
-
Opcionalmente, se o proprietário do recurso for uma organização que requer aprovação para fine-grained personal access tokens, abaixo do proprietário do recurso, na caixa, insira uma justificativa para a solicitação.
-
Em Acesso ao repositório, selecione quais repositórios você deseja que o token acesse. Você deve escolher o acesso mínimo ao repositório que atenda às suas necessidades. Os tokens sempre incluem acesso somente leitura a todos os repositórios públicos no GitHub.
-
Se você selecionou Selecionar somente repositórios na etapa anterior, na lista suspensa Repositórios selecionados , selecione os repositórios que você deseja que o token acesse.
-
Em Permissões, selecione quais permissões quer conceder o token. Dependendo do proprietário do recurso e do acesso do repositório especificados, haverá permissões de repositório, organização e conta. Você deve escolher as permissões mínimas para suas necessidades.
O documento de referência da API REST para cada ponto de extremidade indica se o ponto de extremidade funciona com fine-grained personal access tokens, e declara quais permissões são necessárias para que o token use o ponto de extremidade. Alguns pontos de extremidade podem exigir várias permissões e alguns pontos de extremidade podem exigir uma de várias permissões. Para ter uma visão geral de quais pontos de extremidade da API REST um fine-grained personal access token pode acessar usando cada permissão, confira Permissões necessárias para tokens de acesso pessoal refinados.
-
Clique em Gerar token.
Se você selecionou uma organização como o proprietário do recurso e a organização requer aprovação para fine-grained personal access tokens, o token será marcado como pending
até que seja revisado por um administrador da organização. O token poderá ler apenas recursos públicos até que seja aprovado. Se você for um proprietário da organização, a solicitação será aprovada automaticamente. Para saber mais, confira Revisar e revogar tokens de acesso pessoal na organização.
Como criar um personal access token (classic)
Note
Os proprietários da organização podem restringir o acesso do personal access token (classic) à respectiva organização. Se você tentar usar um personal access token (classic) para acessar recursos em uma organização que desabilitou o acesso ao personal access token (classic), sua solicitação falhará com uma resposta 403. Nesse caso, use um GitHub App, um OAuth app ou um fine-grained personal access token.
Warning
O personal access token (classic) pode acessar todos os repositórios que você pode acessar. O GitHub recomenda que você use fine-grained personal access tokens, que pode restringir a repositórios específicos. Os Fine-grained personal access tokens também permitem que você especifique permissões refinadas em vez de escopos amplos.
-
No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
-
Na barra lateral esquerda, clique em Configurações do desenvolvedor.
-
Na barra lateral esquerda, em Personal access tokens, clique em Tokens (clássico).
-
Selecione Gerar novo token e clique em Gerar novo token (clássico).
-
No campo "Observação", dê um nome descritivo ao token.
-
Para dar uma validade ao token, selecione Validade e escolha uma opção padrão ou clique em Personalizado para inserir uma data.
-
Selecione os escopos ou as permissões que deseja conceder a esse token. Para usar o token para acessar os repositórios na linha de comando, selecione repositório. Um token com nenhum escopo atribuído só pode acessar informações públicas. Para saber mais, confira Escopos para aplicativos OAuth.
-
Clique em Gerar token.
-
Opcionalmente, para copiar o novo token para a área de transferência, clique em .
Excluir um personal access token
Você deverá excluir um personal access token se ele não for mais necessário. Se você excluir um personal access token usado para criar uma chave de implantação, a chave de implantação também será excluída.
- No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
- Na barra lateral esquerda, clique em Configurações do desenvolvedor.
- Na barra lateral esquerda, em Personal access tokens, clique em Tokens refinados ou Tokens (clássico), dependendo do tipo de personal access token que você gostaria de excluir.
- À direita do personal access token que você deseja excluir, clique em Excluir.
Como usar um personal access token na linha de comando
Se você tem um personal access token, é possível inseri-lo em vez de sua senha ao realizar operações Git em HTTPS.
Por exemplo, para clonar um repositório na linha de comando, insira o comando git clone
a seguir. Você será solicitado a inserir seu nome de usuário e senha. Quando solicitado a fornecer sua senha, insira seus dados do personal access token em vez de uma senha.
$ git clone https://HOSTNAME/USERNAME/REPO.git
Username: YOUR-USERNAME
Password: YOUR-PERSONAL-ACCESS-TOKEN
Os Personal access tokens só podem ser usados para operações HTTP do Git. Se o repositório usar uma URL remota SSH, você precisará alternar o repositório remoto de SSH para HTTPS.
Se não for solicitado a informar seu nome de usuário e a senha, suas credenciais poderão ser armazenadas em cache no seu computador. Você pode atualizar suas credenciais no conjunto de chaves para substituir sua senha antiga pelo token.
Em vez de inserir manualmente os dados do personal access token para cada operação HTTPS do Git, você pode armazenar em cache os dados do personal access token com um cliente Git. O Git irá armazenar temporariamente as suas credenciais na memória até que um intervalo de expiração tenha passado. Você também pode armazenar o token em um arquivo de texto simples que o Git pode ler antes de cada solicitação. Para saber mais, confira Armazenar suas credenciais do GitHub no Git.