Обзор и введение
Info
Приложения OAuth 2.0 позволяют сторонним сервисам получать ограниченный доступ к API GitVerse без передачи им учетных данных пользователя.
Что такое OAuth 2.0?
OAuth 2.0 — отраслевой стандарт авторизации (RFC 6749), который позволяет клиентским приложениям получать делегированный доступ к защищенным ресурсам от имени владельца ресурсов.
Вместо передачи приложению логина и пароля пользователь предоставляет ему ограниченный доступ, а сервер авторизации выдает приложению токен доступа.
OAuth 2.0 определяет механизм авторизации. Он позволяет приложению получить доступ к разрешенным ресурсам пользователя, но не предназначен для подтверждения личности пользователя или реализации механизма аутентификации.
Роли в OAuth 2.0
В OAuth 2.0 участвуют четыре основные роли:
| Роль | В GitVerse | Описание |
|---|---|---|
| Resource Owner | Пользователь GitVerse | Владелец ресурсов, который предоставляет приложению доступ |
| Client | Приложение OAuth 2.0 | Стороннее приложение, запрашивающее доступ |
| Authorization Server | GitVerse | Авторизует приложение и выдает токены |
| Resource Server | API GitVerse | Принимает access token и предоставляет доступ к защищенным ресурсам |
Что такое приложение OAuth 2.0?
Приложение OAuth 2.0 — зарегистрированное в GitVerse клиентское приложение, которое может получать делегированный доступ к API GitVerse от имени пользователя.
Доступ приложения может ограничиваться областями доступа (scope). Полный список поддерживаемых областей доступа см. в разделе Области доступа.
GitVerse выступает в роли OAuth 2.0 Authorization Server: принимает запросы авторизации, получает подтверждение пользователя и выдает приложению токены доступа.
После регистрации приложения OAuth 2.0 вы можете:
- предоставлять сторонним приложениям доступ к API GitVerse без передачи им учетных данных пользователя;
- ограничивать доступ приложений с помощью поддерживаемых областей доступа (
scope); - отзывать ранее предоставленный доступ;
- интегрировать внешние сервисы — CI/CD-системы, IDE, инструменты мониторинга, аналитики и другие приложения.
Типы приложений
GitVerse поддерживает два типа приложений OAuth 2.0:
| Тип | Кто создает | Где управляется | Область доступа |
|---|---|---|---|
| Личное | Пользователь | /user/settings/applications | Ресурсы пользователя и публичные ресурсы |
| Организационное | Owner/Admin организации | /org/:org/settings/applications | Разрешенные ресурсы организации и публичные ресурсы |
Note
Создание организационного OAuth-приложения не предоставляет ему автоматический доступ ко всем ресурсам организации. Фактический доступ определяется правами пользователя, настройками приложения и предоставленными областями доступа.
Типы клиентов
OAuth 2.0 различает Конфидециальный и Публичный клиенты.
| Тип | Описание | client_secret | PKCE | Примеры |
|---|---|---|---|---|
| Конфидециальный | Приложения, способные безопасно хранить секрет клиента | Используется | Обязателен | Backend-сервис, серверная CI/CD-система |
| Публичный | Приложения, которые не могут безопасно хранить секрет клиента | Не используется | Обязателен | Мобильное приложение, десктопное приложение, SPA, CLI |
Tip
Для всех типов клиентов в GitVerse используется PKCE. Подробнее см. в FAQ: PKCE и Лучших практиках.
Как это работает
В GitVerse используется Authorization Code Flow с PKCE:
- Приложение формирует
code_verifier, вычисляетcode_challengeи перенаправляет пользователя на endpoint авторизации GitVerse. - Пользователь подтверждает предоставление приложению доступа.
- GitVerse перенаправляет пользователя обратно на зарегистрированный
redirect_uriи передаетauthorization code. - Приложение проверяет параметр
state. - Приложение обменивает
authorization codeиcode_verifierнаaccess_tokenиrefresh_token. - Приложение использует
access_tokenдля обращения к API GitVerse в пределах предоставленных прав.
Note
OAuth 2.0 в GitVerse используется для авторизации доступа к API. GitVerse не предоставляет OpenID Connect и не использует OAuth 2.0 как механизм аутентификации пользователя.
С чего начать
- Быстрый старт — создание первого приложения OAuth 2.0 и получение access token;
- Авторизация приложений OAuth 2.0 — подробное описание Authorization Code Flow с PKCE;
- Области доступа — поддерживаемые
scope; - Лучшие практики — рекомендации по безопасной реализации OAuth 2.0.