Предупреждение. Рассматривайте маркеры доступа как пароли. Дополнительные сведения см. в разделе Обеспечение безопасности personal access tokens.
Сведения о personal access tokens
Personal access tokens являются альтернативой использованию паролей для проверки подлинности в GitHub Enterprise Cloud при использовании API GitHub или командной строки.
Personal access tokens предназначены для доступа к ресурсам GitHub от имени пользователя. Для доступа к ресурсам от имени организации или для длительных интеграций следует использовать GitHub App. Дополнительные сведения см. в разделе Сведения о создании приложений GitHub.
Типы personal access tokens
GitHub в настоящее время поддерживает два типа personal access tokens: fine-grained personal access tokens и personal access tokens (classic). GitHub рекомендует по возможности использовать fine-grained personal access tokens вместо personal access tokens (classic).
Владельцы организации могут задать политику для ограничения доступа personal access tokens (classic) к своей организации, а владельцы предприятия могут ограничить доступ personal access tokens (classic) к предприятию или организациям, принадлежащим предприятию. Дополнительные сведения см. в разделе Настройка политики личного маркера доступа для организации.
Fine-grained personal access tokens
Fine-grained personal access tokens имеют ряд преимуществ безопасности по сравнению с personal access tokens (classic):
- Каждый маркер может получить доступ только к ресурсам, принадлежащим одному пользователю или организации.
- Каждый маркер может получить доступ только к определенным репозиториям.
- Каждому маркеру предоставляются определенные разрешения, которые обеспечивают больший контроль, чем области, предоставленные personal access tokens (classic).
- У каждого маркера должна быть дата окончания срока действия.
- Владельцы организации могут требовать утверждения для любых fine-grained personal access tokens, которые могут получать доступ к ресурсам в организации.
- Владельцы предприятия могут требовать утверждения для любых fine-grained personal access tokens, которые могут получать доступ к ресурсам в организациях, принадлежащих предприятию.
Personal access tokens (classic)
Personal access tokens (classic) менее безопасны. Однако некоторые функции в настоящее время будут работать только с personal access tokens (classic):
- Только personal access tokens (classic) имеют доступ на запись для общедоступных репозиториев, которые не принадлежат вам или организации, членом которых вы не являетесь.
- Только personal access tokens (classic) автоматически имеют доступ на запись для внутренних репозиториев, принадлежащих вашему предприятию. Fine-grained personal access tokens должен быть предоставлен доступ к внутренним репозиториям.
- Внешние участники совместной работы могут использовать personal access tokens (classic) только для доступа к репозиториям организации, в которых они являются участниками совместной работы.
- Доступ к предприятиям может получить только personal access tokens (classic). (Fine-grained personal access token может получить доступ к организациям, принадлежащим предприятиям.)
- Доступ к API GraphQL может получить только personal access tokens (classic).
- Некоторые операции REST API недоступны для fine-grained personal access tokens. Список операций REST API, поддерживаемых для fine-grained personal access token, см. в разделе Конечные точки, доступные для детализированных личных маркеров доступа.
Если вы решили использовать personal access token (classic), помните, что он предоставит доступ ко всем репозиториям в организациях, к которым у вас есть доступ, а также ко всем личным репозиториям в личная учетная запись.
В качестве меры безопасности GitHub автоматически удаляет personal access token, которые не использовались в течение года. Чтобы обеспечить дополнительную безопасность, мы настоятельно рекомендуем добавить срок действия в personal access tokens.
Обеспечение безопасности personal access tokens
Personal access tokens похожи на пароли и имеют одинаковые риски безопасности. Прежде чем создавать новый personal access token, подумайте, есть ли у вас более безопасный метод проверки подлинности:
- Для доступа к GitHub из командной строки можно использовать GitHub CLI или диспетчер учетных данных Git вместо создания personal access token.
- При использовании personal access token в рабочем процессе GitHub Actions рассмотрите возможность использования встроенного
GITHUB_TOKEN
. Дополнительные сведения см. в разделе Автоматическая проверка подлинности токенов.
Если эти параметры недоступны и необходимо создать personal access token, рассмотрите возможность использования другой службы, например 1Password CLI для безопасного хранения маркера, или подключаемого модуля оболочки GitHub для безопасной проверки подлинности в GitHub CLI.
При использовании personal access token в скрипте можно сохранить маркер в виде секрета и запустить скрипт с помощью GitHub Actions. Дополнительные сведения см. в разделе Зашифрованные секреты. Вы также можете сохранить маркер в виде секрета Codespaces и запустить скрипт в Codespaces. Дополнительные сведения см. в разделе Управление зашифрованными секретами для codespace.
Создание fine-grained personal access token
Примечание. Fine-grained personal access token сейчас находятся в бета-версии и могут быть изменены. Чтобы оставить отзыв, ознакомьтесь с обсуждением отзывов.
-
Проверьте адрес электронной почты, если он еще не проверен. 1. В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.
-
На левой боковой панели щелкните Параметры разработчика.
-
На левой боковой панели в разделе Personal access tokens щелкните Детализированные токены.
-
Щелкните Generate new token (Создание нового маркера).
-
В разделе Имя маркера введите имя маркера.
-
В разделе Срок действия выберите срок действия маркера.
-
При необходимости в разделе Описание добавьте примечание для описания назначения маркера.
-
В разделе Владелец ресурса выберите владельца ресурса. Маркер сможет получить доступ только к ресурсам, принадлежащим выбранному владельцу ресурса. Организации, членом которых вы являетесь, не будут отображаться, если организация не согласилась на fine-grained personal access tokens. Дополнительные сведения см. в разделе Настройка политики личного маркера доступа для организации. Вам может потребоваться выполнить единый вход SAML, если он требуется выбранной организации и у вас еще нет активного сеанса SAML.
-
При необходимости, если владельцем ресурса является организация, требующая утверждения для fine-grained personal access tokens, под владельцем ресурса в поле введите обоснование запроса.
-
В разделе Доступ к репозиторию выберите репозитории, к которым требуется получить доступ к маркеру. Необходимо выбрать минимальный доступ к репозиторию, который соответствует вашим потребностям. Маркеры всегда включают доступ только для чтения ко всем общедоступным репозиториям на GitHub.
-
Если на предыдущем шаге вы выбрали только репозитории , в раскрывающемся списке Выбранные репозитории выберите репозитории, к которым требуется получить доступ к маркеру.
-
В разделе Разрешения выберите разрешения для предоставления маркера. В зависимости от владельца ресурса и указанного доступа к репозиторию существуют разрешения репозитория, организации и учетной записи. Необходимо выбрать минимальные разрешения, необходимые для ваших потребностей. Дополнительные сведения о том, какие разрешения требуются для каждой операции REST API, см. в разделе Разрешения, необходимые для детализированных личных маркеров доступа.
-
Щелкните Создать токен.
Если вы выбрали организацию в качестве владельца ресурса и ей требуется утверждение для fine-grained personal access tokens, маркер будет помечаться как pending
до тех пор, пока он не будет проверен администратором организации. Маркер будет доступен только для чтения общедоступных ресурсов, пока он не будет утвержден. Если вы являетесь владельцем организации, ваш запрос автоматически утверждается. Дополнительные сведения см. в разделе Проверка и отзыв личных маркеров доступа в организации.
Создание personal access token (classic)
Примечание. Владельцы организации могут ограничить доступ personal access token (classic) к своей организации. Если вы попытаетесь использовать personal access token (classic) для доступа к ресурсам в организации, которая отключила доступ к personal access token (classic), запрос завершится ошибкой с ответом 403. Вместо этого необходимо использовать GitHub App, OAuth App или fine-grained personal access token.
Примечание. Ваш personal access token (classic) может получить доступ ко всем репозиториям, к которым вы можете получить доступ. GitHub рекомендует использовать fine-grained personal access tokens, которые можно ограничить определенными репозиториями. Fine-grained personal access tokens также позволяют указывать детализированные разрешения вместо широких областей.
-
Проверьте адрес электронной почты, если он еще не проверен. 1. В правом верхнем углу любой страницы щелкните фотографию профиля, а затем выберите Параметры.
-
На левой боковой панели щелкните Параметры разработчика.
-
На левой боковой панели в разделе Personal access tokens щелкните Токены (классическая модель). 1. Выберите Создать новый маркер, а затем щелкните Создать новый маркер (классический).
-
В поле "Примечание" присвойте маркеру описательное имя.
-
Чтобы предоставить маркеру срок действия, выберите Срок действия, а затем выберите параметр по умолчанию или нажмите кнопку Пользовательский , чтобы ввести дату.
-
Выберите области, которые вы хотите предоставить этому маркеру. Чтобы использовать маркер для доступа к репозиториям из командной строки, выберите repo. С помощью маркера без назначенных областей можно получить доступ только к общедоступной информации. Дополнительные сведения см. в разделе Области для приложений OAuth.
-
Щелкните Создать токен.
-
При необходимости, чтобы скопировать новый маркер в буфер обмена, щелкните .
-
Чтобы использовать маркер для доступа к ресурсам, принадлежащим организации, которая использует единый вход SAML, авторизуйте маркер. Дополнительные сведения см. в разделе Авторизация личного токена доступа для использования с документами единого входа SAML".
Использование personal access token в командной строке
Получив маркер, вы можете ввести его вместо пароля при выполнении операций Git по протоколу HTTPS.
Например, в командной строке введите следующее:
$ git clone https://github.com/USERNAME/REPO.git
Username: YOUR_USERNAME
Password: YOUR_TOKEN
Personal access tokens можно использовать только для операций HTTPS Git. Если в репозитории используется удаленный URL-адрес SSH, необходимо переключить удаленный узел с SSH на HTTPS.
Если вам не предлагается ввести имя пользователя и пароль, ваши учетные данные, возможно, кэшированы на компьютере. Вы можете обновить учетные данные в цепочке ключей, чтобы заменить старый пароль маркером.
Вместо того, чтобы вручную вводить personal access token для каждой операции HTTPS Git, вы можете кэшировать personal access token с помощью клиента Git. Git временно хранит учетные данные в памяти до истечения срока их действия. Вы также можете сохранить маркер в обычном текстовом файле, который Git может считывать перед каждым запросом. Дополнительные сведения см. в разделе Кэширование учетных данных GitHub в Git.