1
0
mirror of synced 2026-01-03 06:04:16 -05:00
Files
docs/translations/ru-RU/content/developers/apps/getting-started-with-apps/migrating-oauth-apps-to-github-apps.md
2022-11-16 21:42:42 +00:00

19 KiB
Raw Blame History

title, intro, redirect_from, versions, topics, shortTitle, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
title intro redirect_from versions topics shortTitle ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
Переход с OAuth Apps на GitHub Apps Узнайте о преимуществах переноса {% data variables.product.prodname_oauth_app %} в {% data variables.product.prodname_github_app %} и о том, как перенести {% data variables.product.prodname_oauth_app %}, которого нет в {% data variables.product.prodname_marketplace %}.
/apps/migrating-oauth-apps-to-github-apps
/developers/apps/migrating-oauth-apps-to-github-apps
fpt ghes ghae ghec
* * * *
GitHub Apps
Migrate from OAuth Apps 4fea258cc9677401d8212634fdcc04abf22724c9 47bd0e48c7 HT ru-RU 09/05/2022 147081035

В этой статье приведены рекомендации для существующих интеграторов, которые позволяют выполнять переход с OAuth Apps на GitHub Apps.

Причины перехода на GitHub Apps

GitHub Apps — это официально рекомендуемый способ интеграции с GitHub, так как это решение предлагает множество преимуществ по сравнению с чистой интеграцией на основе OAuth:

  • Избирательные разрешения предназначены для предоставления GitHub Apps доступа к определенной информации, что позволяет более широко использовать приложение людьми и организациями с политиками безопасности по сравнению с OAuth Apps без ограничивающих разрешений.
  • Кратковременные токены обеспечивают более безопасный метод аутентификации по сравнению с токенами OAuth. Срок действия токена OAuth не истекает до тех пор, пока лицо, которое авторизовало экземпляр OAuth Apps, не отзовет токен. В GitHub Apps используются токены с коротким сроком действия, что значительно сокращает время использования скомпрометированных токенов.
  • Встроенные централизованные веб-перехватчики получают события для всех репозиториев и организаций, к которым может получить доступ приложение. И наоборот, в OAuth Apps требуется настройка веб-перехватчика для каждого репозитория и организации, доступных пользователю.
  • Учетные записи ботов не занимают рабочие места {% data variables.product.product_name %} и остаются установленными, даже если пользователь, изначально установивший приложение, покидает организацию.
  • Встроенная поддержка OAuth по-прежнему доступна для GitHub Apps, использующих конечные точки между пользователей и сервером.
  • Выделенные ограничения скорости API для учетных записей ботов масштабируются с учетом вашей интеграции.
  • Владельцы репозиториев могут устанавливать GitHub Apps в репозиториях организации. Если конфигурация GitHub Apps имеет разрешения, запрашивающие ресурсы организации, владелец организации должен одобрить установку.
  • Поддержка сообщества с открытым кодом доступна через библиотеки Octokit и другие платформы, такие как Probot.
  • Интеграторы, создающие GitHub Apps, имеют возможность использовать более ранний доступ к API.

Преобразование OAuth Apps в GitHub Apps

В этих рекомендациях предполагается, что у вас есть зарегистрированный экземпляр OAuth Apps {% ifversion fpt or ghec %}, который может быть или не быть указан в GitHub Marketplace {% endif %}. В общем вам нужно будет выполнить следующие шаги:

  1. Просмотр доступных конечных точек API для GitHub Apps
  2. Проектирование для ограничения скорости API
  3. Регистрация нового приложения в GitHub Apps
  4. Определение необходимых разрешений для приложения
  5. Подписка на веб-перехватчики
  6. Знакомство с разными методами проверки подлинности
  7. Предложение пользователям установить ваш экземпляр GitHub Apps
  8. Удаление ненужных перехватчиков репозитория
  9. Предложение пользователям отозвать доступ к экземпляру OAuth Apps
  10. Удаление экземпляра OAuth Apps

Просмотр доступных конечных точек API для GitHub Apps

Хотя большинство конечных точек REST API и запросов GraphQL сегодня доступны для GitHub Apps, мы все еще находимся в процессе включения некоторых конечных точек. Просмотрите доступные конечные точки REST, чтобы убедиться, что необходимые конечные точки совместимы с GitHub Apps. Обратите внимание, что некоторые конечные точки API, включенные для GitHub Apps, позволяют приложению действовать от имени пользователя. Список конечных точек, которые разрешают GitHub Apps выполнять проверку подлинности в качестве пользователя, см. в разделе Запросы между пользователем и сервером.

Рекомендуется как можно раньше просмотреть список конечных точек API. Сообщите в службу поддержки, если вам нужна конечная точка, которая еще не включена для {% data variables.product.prodname_github_apps %}.

Проектирование для ограничения скорости API

В GitHub Apps используются скользящие правила для ограничений скорости, которые могут изменяться с учетом количества репозиториев и пользователей в организации. В GitHub Apps также могут использоваться условные запросы или консолидироваться запросы с помощью API GraphQL.

Регистрация нового приложения в GitHub Apps

Когда вы решите перейти на GitHub Apps, необходимо создать новый экземпляр GitHub Apps.

Определение необходимых разрешений для приложения

При регистрации экземпляра GitHub Apps необходимо выбрать разрешения, требуемые для каждой конечной точки, используемой в коде приложения. Список разрешений, требуемых для каждой конечной точки, доступной для GitHub Apps, см. в разделе Разрешения GitHub Apps.

В параметрах GitHub Apps можно указать, требуется ли вашему приложению доступ к No Access, Read-only или Read & Write для каждого типа разрешений. Избирательные разрешения позволяют вашему приложению получать целевой доступ к набору необходимых вам данных. Мы рекомендуем указать минимально возможный набор разрешений, обеспечивающий желаемую функциональность.

Подписка на веб-перехватчики

Когда вы создадите экземпляр GitHub Apps и выберете его разрешения, вы сможете выбрать события веб-перехватчика, на которые вы хотите подписаться. Сведения о том, как подписаться на веб-перехватчики, см. в разделе Изменение разрешений GitHub Apps.

Знакомство с разными методами проверки подлинности

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

Наиболее распространенным сценарием является проверка подлинности в качестве конкретной установки с помощью маркера доступа установки.

Предложение пользователям установить ваш экземпляр GitHub Apps

После перехода с OAuth Apps на GitHub Apps необходимо сообщить пользователям, что экземпляр GitHub Apps доступен для установки. Например, можно включить ссылку на установку экземпляра GitHub Apps в баннер вызова действия в приложении. Чтобы упростить переход, вы можете использовать параметры запроса, чтобы идентифицировать учетную запись пользователя или организации, которая проходит процесс установки для вашего экземпляра GitHub Apps, и предварительно выбрать любые репозитории, к которым ваш экземпляр OAuth Apps имел доступ. Это позволит пользователям легко устанавливать GitHub Apps в репозиториях, к которых у вас уже есть доступ.

Параметры запроса

Имя Описание
suggested_target_id Обязательный. Идентификатор пользователя или организации, устанавливающей GitHub Apps.
repository_ids[] Массив идентификаторов репозитория. Если этот параметр опущен, мы выбираем все репозитории. Максимальное число репозиториев, которые можно предварительно выбрать, — 100.

Пример URL-адреса

https://github.com/apps/YOUR_APP_NAME/installations/new/permissions?suggested_target_id=ID_OF_USER_OR_ORG&repository_ids[]=REPO_A_ID&repository_ids[]=REPO_B_ID

Вам нужно будет изменить YOUR_APP_NAME на имя вашего экземпляра GitHub Apps, ID_OF_USER_OR_ORG на идентификатор вашего целевого пользователя или организации и включить до 100 идентификаторов репозитория (REPO_A_ID и REPO_B_ID). Чтобы получить список репозиториев, к которым у вашего экземпляра OAuth Apps есть доступ, используйте конечные точки Перечисление репозиториев для аутентифицированных пользователей и Перечисление репозиториев организации.

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

Когда вы установите экземпляр GitHub Apps в репозитории, удалите ненужные веб-перехватчики, созданные устаревшим экземпляром OAuth Apps. Если оба приложения будут установлены в репозитории, они могут дублировать функции для пользователя. Чтобы удалить веб-перехватчики, можно прослушивать веб-перехватчик installation_repositories с repositories_added помощью действия и удалить веб-перехватчик репозитория в этих репозиториях, созданных экземпляром OAuth Apps.

Предложение пользователям отозвать доступ к экземпляру OAuth Apps

С расширением базы установки GitHub Apps рекомендуется поощрять пользователей отменять доступ к устаревшей интеграции OAuth. Дополнительные сведения см. в разделе Авторизация приложений OAuth.

Удаление экземпляра OAuth Apps

Чтобы избежать злоупотребления учетными данными экземпляра OAuth Apps, рекомендуется удалить этот экземпляр OAuth Apps. Это действие также отменит все оставшиеся разрешения экземпляра OAuth Apps. Дополнительные сведения см. в разделе Удаление экземпляра OAuth Apps.