Skip to main content

Различия между приложениями и приложениями OAuth

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

Сведения о Apps и OAuth apps

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

Как и OAuth apps, Apps по-прежнему может использовать OAuth 2.0 и создавать тип маркера OAuth (называемый маркером доступа пользователя) и выполнять действия от имени пользователя. Однако Apps также может действовать независимо от пользователя. Это полезно для автоматизации, для которых не требуются входные данные пользователя. Приложение будет продолжать работать, даже если пользователь, установивший приложение в организации, покидает организацию.

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

Ограничение скорости для Apps с помощью маркера доступа к установке масштабируется с числом репозиториев и числом пользователей организации. И наоборот, OAuth apps имеют более низкие ограничения скорости и не масштабировать.

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

Дополнительные сведения о Appsсм. в разделе Создание приложений .

Дополнительные сведения о переносе существующих данных OAuth app в Appсм. в разделе Перенос приложений OAuth в приложения .

Кто может установить Apps и авторизовать OAuth apps?

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

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

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

Владельцы организации могут выбрать, разрешать ли внешний участник совместной работы запрашивать доступ к неутвержденным OAuth apps и Apps. Дополнительные сведения см. в разделе Ограничение запросов на доступ приложений OAuth и приложений .

Предупреждение

Отмена всех разрешений от OAuth app удаляет все ключи SSH, созданные от имени пользователя, включая ключ развертывания.

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

Что может получить доступ к приложениям и OAuth apps?

Владельцы учетных записей могут использовать App в одной учетной записи, не предоставляя доступа к другой учетной записи. Например, вы можете установить стороннюю службу компиляции в организации вашего работодателя, не предоставляя этой службе доступа к репозиториям в вашей личной учетной записи. Приложение остается установленным, когда настроивший его пользователь покидает организацию.

Авторизованный __ доступ к данным OAuth app имеет доступ ко всем доступным ресурсам пользователя или владелец организации.

ПриложенияOAuth apps
Установка приложения предоставляет приложению доступ к выбранным репозиториям учетной записи пользователя или организации.Авторизация OAuth app предоставляет приложению доступ к доступным ресурсам пользователя. Например, к репозиториям, к которым у него есть доступ.
Маркер установки из приложения теряет доступ к ресурсам, когда администратор удаляет репозитории из установки.Маркер доступа OAuth теряет доступ к ресурсам, когда пользователь теряет доступ, например при отмене доступа на запись в репозиторий.
Маркеры доступа установки ограничиваются указанными репозиториями с разрешениями, выбранными создателем приложения.Маркер доступа OAuth ограничивается через области действия.
Приложения могут запрашивать доступ отдельно к проблемам и запросам на вытягивание, без доступа к фактическому содержимому репозитория.OAuth apps необходимо запросить область, чтобы получить доступ к проблемам, запросам repo на вытягивание или всем, принадлежащим репозиторию.
Приложения не подчиняются политикам приложений организации. Приложение имеет доступ только к репозиториям, для которых владелец организации предоставил соответствующие разрешения.Если политика приложения организации активна, то только владелец организации может авторизовать установку OAuth app. При установке OAuth app получает доступ к маркеру, который владелец организации имеет в утвержденной организации.
Приложение получает событие веб-перехватчика при изменении или удалении установки. Это позволяет создателю приложения узнать, что он получил или потерял доступ к определенным ресурсам организации.OAuth apps может потерять доступ к организации или репозиторию в любое время на основе изменения доступа пользователя. OAuth app не сообщает вам, когда он теряет доступ к ресурсу.

Идентификация на основе маркеров

Примечание.

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

ПриложенияOAuth apps
Приложение может вне основного процесса запросить маркер доступа к установке с использованием закрытого ключа в формате веб-маркера JSON.OAuth app может обмениваться маркером запроса для маркера доступа после перенаправления через веб-запрос.
Маркер установки идентифицирует приложение как бот приложений , например @jenkins-bot.Маркер доступа идентифицирует приложение как пользователя, который предоставил этот маркер приложению, например @octocat.
Срок действия маркеров доступа к установке истекает после предопределенного времени (в настоящее время 1 час).Маркеры OAuth остаются активными, пока они не будут отозваны клиентом.
Apps, установленных в организациях или репозиториях, подвергаются ограничениям частоты, масштабируемым с числом установок. Дополнительные сведения см. в разделе Ограничения скорости для приложений .Маркеры OAuth используют ограничение скорости пользователя в 5000 запросов в час.
Разрешения на увеличение ограничений скорости можно предоставлять как на уровне приложений (это затронет все установки), так и на уровне отдельных установок.Увеличение ограничения скорости предоставляется на OAuth app. Каждый маркер, предоставленный для этого OAuth app, получает увеличенное ограничение.
Apps может проходить проверку подлинности от имени пользователя. Поток авторизации совпадает с потоком авторизации OAuth app . Срок действия маркеров доступа пользователей может быть продлен с помощью маркера обновления. Дополнительные сведения см. в разделе [AUTOTITLE и Обновление маркеров доступа пользователей](/apps/creating--apps/authenticating-with-a--app/identifying-and-authorizing-users-for--apps).Поток OAuth, который используется в OAuth apps, авторизует OAuth app от имени пользователя. Это тот же поток, который используется для создания маркера доступа пользователя App.

Запрос уровней разрешений для ресурсов

В отличие от OAuth apps, приложения имеют целевые разрешения, которые позволяют им запрашивать доступ только к нужным им ресурсам. Например, приложение для непрерывной интеграции (CI) может запрашивать доступ на чтение к содержимому репозитория и доступ на запись к API состояния. Другое приложение может управлять проблемами, метками и вехами, не имея доступа на чтение или запись к коду. OAuth apps не может использовать детализированные разрешения.

ОткрытьПриложения (разрешения read или write)OAuth apps
Доступ к общедоступным репозиториямВо время установки необходимо выбрать общедоступный репозиторий.Область public_repo.
Доступ к коду или содержимому репозиторияСодержимое репозиторияОбласть repo.
Доступ к проблемам, меткам и вехамПроблемыОбласть repo.
Доступ к запросам на вытягивание, меткам и вехамЗапросы на включение внесенных измененийОбласть repo.
Доступ к состояниям фиксации (для сборок CI)Состояния фиксацийОбласть repo:status.
Доступ к развертываниям и состояниям развертыванияРазвертыванияОбласть repo_deployment.
Для получения событий через веб-перехватчикПриложение по умолчанию включает веб-перехватчик.Область write:repo_hook или write:org_hook.

Обнаружение репозитория

ПриложенияOAuth apps
Приложения могут получить из /installation/repositories список репозиториев, к которые установка имеет доступ.OAuth apps может искать /user/repos представление пользователя или /orgs/:org/repos представление организации доступных репозиториев.
Приложения получают действия веб-перехватчиков при добавлении репозиториев в установку и при удалении их из нее.OAuth apps создают веб-перехватчики организации для уведомлений при создании нового репозитория в организации.

Веб-перехватчики

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

Доступ к Git

ПриложенияOAuth apps
Приложения запрашивают разрешение на содержимое репозитория и используют маркер доступа к установке для проверки подлинности через Git на основе HTTP. Дополнительные сведения см. в разделе Создание маркера доступа к установке для приложенияOAuth apps запрашивают write:public_key область и создают ключ развертывания через API. Затем этот ключ можно использовать для выполнения команд Git.
Этот маркер используется в качестве пароля HTTP.Этот маркер используется в качестве имени пользователя HTTP.

Учетные записи компьютеров и ботов

Учетные записи пользователей компьютера — это личные учетные записи на основе OAuth, которые используются для различения автоматизированных систем на основе системы пользователей .

Учетные записи ботов используются только в приложениях и встраиваются в каждое приложение .

ПриложенияOAuth apps
Боты приложений не используют Enterprise license.Учетная запись пользователя компьютера использует Enterprise license.
Так как боту приложения никогда не назначается пароль, клиент не может войти в него напрямую.Учетной записи пользователя компьютера предоставляется имя пользователя и пароль, управление и защиту для которого клиент выполняет самостоятельно.