Поток авторизации кода OAuth 2
Поток авторизации кода OAuth 2
Обзор
Frame.io поддерживает создание приложений OAuth 2 и управление ими. В отличие от токенов разработчика, приложения OAuth 2 позволяют любому пользователю Frame.io предоставить свои учетные данные через безопасный вход, после чего приложение может действовать от имени этого пользователя.
Простыми словами, приложения OAuth 2 лучше всего подходят для любого сценария интеграции, в котором важен контекст и доступ отдельного пользователя.
Поток кода OAuth 2
Основная последовательность
На очень высоком уровне OAuth 2 имеет три стороны:
- Пользователь (в нашем случае: любой с входом в Frame.io)
- Клиентское приложение (внешнее приложение OAuth2.0)
- Сервер учетных данных (в нашем случае: Frame.io)
Поток кода для OAuth 2 — это четырехэтапный процесс, в ходе которого:
- Приложение показывает пользователю экран входа.
- Пользователь вводит свои учетные данные, которые направляются непосредственно на сервер.
- В случае выполнения входа сервер отправляет обратно страницу с запросом к пользователю подтвердить, что он хочет предоставить приложению предварительно настроенный набор областей доступа.
- Если пользователь дает согласие, сервер отправляет приложению токен, который можно использовать для действий от имени пользователя с запрошенными областями доступа.
Таким образом, клиентское приложение может безопасно действовать от имени пользователя с его разрешения и (что важно) никогда не видеть и не обрабатывать фактические учетные данные пользователя.
Цикл обратного вызова
Описанная выше последовательность основана на том, что сервер (Frame.io) размещает две службы, каждая со своим собственным маршрутом:
Роль приложения OAuth 2 в этом цикле заключается в идентификации себя на сервере и выполнении этих двух запросов.
Краткий пример
Создавали ли вы приложение OAuth 2 раньше?
Если вы знакомы с остальными компонентами OAuth2.0, приведенного ниже примера может быть достаточно для начала работы. Если вам нужно больше сведений, ознакомьтесь с более подробным руководством здесь.
Настройка приложения
- Войдите на Frame.io Developer Portal с помощью учетных данных Frame.io, перейдите к OAuth Apps, используя ссылки слева, и нажмите New, чтобы начать настройку приложения.
- На следующем экране введите имя и URI перенаправления для вашего приложения, выберите области доступа и укажите, использовать ли PKCE.
- Сохраните — теперь вы должны увидеть конфигурацию нового приложения.
О PKCE
Proof Key for Code Exchange (произносится «пикси») позволит вашему приложению запрашивать токены без указания client_secret. Соответственно, вам не будет предоставлен client_secret, и не следует включать заголовок Authorization при отправке POST для токена в цикле обратного вызова приложения. Тем не менее вам потребуется включить client_id в обратный вызов, иначе ваш запрос будет отклонен.
Когда следует использовать PKCE?
В целом использование PKCE не имеет отрицательных побочных эффектов и является рекомендуемым и предпочтительным подходом. При разработке клиентского приложения OAuth2.0 вы реализуете поток авторизации кода в одном из двух контекстов:
- Частный: поток реализован на серверном языке (Python, Java), и вы можете безопасно управлять
client_secretна сервере, который контролируете. - Общедоступный: поток реализован на клиентском языке (Javascript) или непосредственно на клиентском устройстве, которым управляет конечный пользователь (iOS, Android).
Как правило, приложение можно считать «общедоступным», если вы, разработчик приложения, не можете видеть и контролировать весь сетевой трафик, связанный с обменом секретными ключами. Это означает, что помимо клиентских приложений общедоступными следует считать приложения для мобильных устройств, встроенные устройства или любые устройства, находящиеся в сети конечного пользователя (AppleTV, Roku и т. д.).
В частных контекстах вы можете использовать PKCE. В общедоступных контекстах вы должны использовать PKCE.
Создание приложения OAuth 2
Теперь, когда у вас есть конфигурация приложения в Frame.io, вы можете настроить сервер обратного вызова для обработки двух ключевых маршрутов, чтобы завершить цикл обратного вызова согласно приведенной выше таблице.
Более подробную информацию о том, как создать ваше приложение, см. в разделе Создание приложения OAuth 2.