Skip to main content

Авторизация приложений OAuth

Вы можете подключить удостоверение GitHub к сторонним приложениям с помощью OAuth. При авторизации OAuth app следует убедиться в том, что вы доверяете приложению, проверить, кем оно разработано, и просмотреть типы сведений, к которым приложению требуется доступ.

Когда OAuth app хочет определить вас по вашей учетной записи на GitHub, вы увидите страницу с контактными данными разработчика приложения и списком запрошенных данных.

Tip

Перед авторизацией OAuth appнеобходимо проверить адрес электронной почты.

Доступ к OAuth app

OAuth apps могут иметь доступ на чтение или запись к данным GitHub.

  • Доступ на чтение позволяет приложению только просматривать данные.
  • Доступ на запись позволяет приложению изменять данные.

Tip

Рекомендуется регулярно просматривать авторизованные интеграции. Удалите все приложения и маркеры, которые не использовались в течение некоторого времени. Дополнительные сведения см. в разделе Просмотр авторизованных приложений OAuth.

Сведения об областях OAuth

Области — это именованные группы разрешений, которые OAuth app может запрашивать для доступа к открытым и закрытым данным.

Если необходимо использовать OAuth app в интеграции с GitHub, это приложение сообщит требуемый тип доступа к данным. Если вы предоставляете доступ к приложению, приложение сможет выполнять действия от вашего имени, например чтение или изменение данных. Например, если вы хотите использовать приложение, которое запрашивает область действия user:email, приложение будет иметь доступ к частным адресам электронной почты только для чтения. Дополнительные сведения см. в разделе Области для приложений OAuth.

Note

В настоящее время невозможно ограничить доступ к исходному коду только для чтения.

Маркер имеет те же возможности для доступа к ресурсам и выполнения действий с этими ресурсами, которые владелец маркера имеет, и дополнительно ограничивается любыми областями или разрешениями, предоставленными маркеру. Маркер не может предоставить пользователю дополнительные возможности доступа. Например, приложение может создать маркер доступа, настроенный с admin:org помощью области, но если пользователь приложения не является владелец организации, приложение не будет предоставлять административный доступ к организации.

Существует ограничение в десять маркеров, выданных для каждого пользователя или приложения/область комбинации, и ограничение скорости в десять маркеров, созданных в час. Если приложение создает более десяти маркеров для одного пользователя и одного и того же область, старые маркеры с одним и тем же пользователем или приложением/область комбинацией отзываются. Однако при нажатии почасового ограничения скорости не отозван старый токен. Вместо этого он активирует запрос повторной авторизации в браузере, запрашивая у пользователя двойное проверка разрешения, которые они предоставляют приложению. Этот запрос предназначен для того, чтобы дать перерыв любому потенциальному бесконечному циклу приложения зависает, так как не существует никаких причин для приложения запрашивать десять токенов от пользователя в течение часа.

Типы запрашиваемых данных

OAuth apps могут запрашивать несколько типов данных.

Тип данныхDescription
Состояние фиксацииВы можете предоставить приложению доступ к сведениям о состоянии фиксации. Доступ к состоянию фиксации позволяет приложениям определять, была ли сборка для определенной фиксации выполнена успешно. У приложений не будет доступа к коду, но они смогут считывать сведения о состоянии определенной фиксации и записывать их.
РазвертыванияДоступ к состоянию развертывания позволяет приложениям определять, было ли развертывание для определенной фиксации в общедоступном или частном репозитории выполнено успешно. У приложений не будет доступа к коду.
GistДоступ к gist позволяет приложениям осуществлять как чтение из общедоступных и секретных gist, так и запись в них.
ОбработчикиДоступ к веб-перехватчикам позволяет приложениям считывать конфигурации перехватчиков в управляемых вами репозиториях и записывать их.
NotificationsДоступ к уведомлениям позволяет приложениям считывать уведомления GitHub, например комментарии к проблемам и запросам на вытягивание. Однако приложения по-прежнему не имеют доступа к содержимому репозиториев.
Организации и группыДоступ к организации и командам позволяет приложениям получать доступ к организации и командам и управлять членством в них.
Личные данные пользователяДанные пользователя включают в себя сведения в профиле пользователя, такие как имя, адрес электронной почты и местонахождение.
РепозиторииСведения о репозитории включают в себя имена участников, созданные ветви и существующие файлы в репозитории. Приложения могут запрашивать доступ к общедоступным или частным репозиториям на уровне пользователя.
Удаление репозиторияПриложения могут запрашивать удаление управляемых вами репозиториев, но у них нет доступа к коду.
ПроектыЗдесь доступны проекты пользователя и организации. Приложения могут запрашивать доступ на чтение/запись или только на чтение.

Запрос обновленных разрешений

Когда OAuth apps запрашивают новые права доступа, они уведомляют вас о различиях между текущими и новыми разрешениями.

OAuth apps и организации

При авторизации OAuth app для личной учетной записи можно увидеть, как авторизация повлияет на каждую организацию, в которую вы входите.

  • Для организаций с ограничениями доступа OAuth app можно запросить, чтобы владелец организации утвердить приложение для использования в этой организации. Если организация не утвердит приложение, оно сможет получить доступ только к общедоступным ресурсам организации. Если вы являетесь владелец организации, вы можете утвердить приложение самостоятельно.

  • Для организаций без ограничений доступа OAuth app приложение автоматически авторизуется для доступа к ресурсам организации. Поэтому следует внимательно следить за тем, какие OAuth apps утверждаются для доступа к ресурсам личных учетных записей, а также к любым ресурсам организации.

Если вы принадлежите любым организациям с поддержкой единого входа SAML, и вы создали связанное удостоверение для этой организации путем аутентификации через SAML в прошлом, необходимо иметь активный сеанс SAML для каждой организации при каждом авторизации OAuth app.

Note

Если возникают проблемы с авторизованным OAuth app или GitHub App с доступом к организации, защищенной SAML, может потребоваться отозвать приложение из авторизованного GitHub Apps или авторизованного OAuth apps страница, посетите организацию, чтобы пройти проверку подлинности и установить активный сеанс SAML, а затем попытаться повторно выполнить проверку подлинности приложения путем доступа к нему.

Дополнительные материалы