Практическое руководство: управление авторизацией
Практическое руководство: управление авторизацией
Обзор
Данное руководство описывает процедуры управления токенами авторизации устройств в Frame.io, включая обновление токенов, отзыв и практики безопасного хранения.
Требования
См. руководство Реализация C2C: настройка, чтобы обеспечить правильную конфигурацию.
Необходимые компоненты:
- Действительный
client_secret, выданный Frame.io - Назначенный вам
client_id, как описано в руководстве по аутентификации и авторизации. - Действительные учетные данные
access_tokenиrefresh_token
Понимание токенов авторизации
Наше предыдущее руководство по аутентификации устройств описывало процесс получения начальных токенов авторизации через аутентификацию пользователя. Токены доступа сохраняют функциональность приблизительно 8 часов. Чтобы исключить необходимость частого повторного сопряжения устройств, мы реализуем область доступа офлайн для получения токена обновления вместе с авторизацией. Данный токен обновления позволяет создавать новые токены доступа при истечении срока действия.
Токены обновления остаются действительными 14 дней. Намеренное ограничение срока действия токенов доступа повышает безопасность за счет минимизации потенциальных уязвимостей от скомпрометированных токенов. Обратите внимание, что если авторизация не обновляется до истечения срока действия токена обновления, потребуется повторная аутентификация пользователя.
Процесс обновления токена доступа
При истечении срока действия токена доступа запросы API получат следующий ответ:
Выполните следующую команду для получения нового токена:
Спецификация конечной точки API-интерфейса
Подробная документация для /v2/auth/token доступна здесь
Данная реализация требует множественных факторов аутентификации для повышения безопасности. Неавторизованной стороне потребуется получить как refresh_token, так и client_secret для имитации вашей интеграции.
Обновление создает следующий ответ:
После успешного обновления токена предыдущие учетные данные становятся недействительными. Обеспечьте правильное хранение новых токенов авторизации.
Попытка повторного использования токена обновления с истекшим сроком действия приводит к следующему:
Это указывает на то, что токен уже был обработан ранее и больше не действителен.
Получение ошибки 401 при обновлении
Получение ответа 401. Несанкционированный доступ при обновлении токена указывает на аннулирование учетных данных, что требует нового процесса авторизации.
Обработка неудачных ответов обновления
Так как значения refresh_token одноразовые, при сбое получения ответа обновления из-за прерывания сети или отключения системы потребуется повторно запустить полную последовательность аутентификации/авторизации.
Этот протокол безопасности, хотя и может причинять неудобства, необходим для поддержания целостности системы.
Процесс отзыва токенов
Может потребоваться прекращение доступа к Frame.io, например завершение проекта или сброс приложения. Реализуйте правильные процедуры отзыва при прекращении текущей авторизации.
Выполните следующую команду для отзыва авторизации:
Повторная авторизация
После отзыва необходимо повторно инициировать процесс аутентификации и авторизации, как описано в руководстве по аутентификации и авторизации.
Спецификация конечной точки API-интерфейса
Полная документация для /v2/auth/revoke доступна здесь
Система возвращает заголовки без полезной нагрузки. Успешное выполнение обозначается кодом состояния 200:
После отзыва операции Frame.io, требующие аутентификации с помощью access_token, будут возвращать Несанкционированный доступ. Восстановление доступа требует повторного сопряжения устройства с проектом.
Реализация хранения токенов
Для поддержания сохраняемой авторизации при перезапуске системы требуется безопасное хранение токенов. Следуйте этим основным рекомендациям:
Внедрите элементы управления доступом пользователей: ограничьте видимость токенов и доступ к ним исключительно процессами приложения. Включите шифрование хранилища: реализуйте шифрование для сохраненных токенов, включая client_secret и учетные данные авторизации. Никогда не храните ключи авторизации в формате простого текста. Обеспечьте разделение учетных данных: хотя наше демонстрационное приложение Python объединяет хранилище, производственные среды должны разделять токены авторизации и client_secret. Учитывайте эти факторы:
client_secretиclient_idпредставляют постоянные учетные данные устройства — их потеря приводит к полному отказу устройства.- Токены авторизации регулярно обновляются в процессе работы устройства
- Раздельное хранилище гарантирует, что повреждение токенов потребует только повторного сопряжения устройства, а не полного сброса аутентификации.
Хотя SQLite обеспечивает оптимальные возможности хранения токенов, как минимум реализуйте раздельное хранилище для данных авторизации и основных учетных данных.
Дальнейшие шаги
Мы рады вашему прогрессу и предлагаем перейти к руководству по состоянию подключения и heartbeats. Если у вас возникли вопросы, свяжитесь с нами по адресу.