Концепции и основы

Понимание основных концепций

API-интерфейс C2C основан на нескольких важных технологиях, о которых следует знать перед началом проекта интеграции. Ознакомьтесь с заголовками в этой статье — если какие-либо термины вам незнакомы, это руководство поможет устранить пробелы в знаниях. Если у вас возникнут трудности с определенными концепциями, наша команда готова предоставить дополнительные ресурсы и поддержку.

Что нужно знать

Для интеграции с API-интерфейсом C2C у вас должно быть базовое понимание следующего:

Сети

TLS/SSL, протоколов TCP/IP и основ работы сетей

HTTPS

Реализация безопасных запросов HTTPS

Аутентификация

Методологии аутентификации и авторизации

Основы работы сетей и глоссарий

По сути, API-интерфейс Frame.io обеспечивает связь между серверами Frame.io и вашим устройством или приложением, требуя сетевых взаимодействий для каждой операции.

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

Помимо решения стандартных проблем коммуникации, нам нужно обеспечить безопасную передачу конфиденциальных данных. Frame.io требует шифрования для всех серверных коммуникаций, добавляя в процесс необходимые уровни безопасности.

При реализации API-интерфейс C2C вы, скорее всего, будете использовать сторонние библиотеки для обработки сетевых сведений. Однако, поскольку сетевые компоненты часто генерируют реальные ошибки, важно знать об основных процессах при взаимодействии с серверами Frame.io. Краткий глоссарий важных терминов:

TCP/IP

Transmission Control Protocol/Internet Protocol — стандартизированные компоненты и уровни, которые обеспечивают глобальную передачу данных. Для получения дополнительной информации рекомендуем этот доступный ресурс высокого уровня.

TLS/SSL

Transport Layer Security/Secure Socket Layer — хотя технически они разные, сегодня их обычно используют как взаимозаменяемые термины. TLS представляет собой развитие SSL, хотя последний по-прежнему широко используется. Дополнительные сведения о TLS см. в этом обзоре.

Открытые и закрытые ключи

Открытый ключ работает как замок, а закрытый ключ служит соответствующим ключом.

Представьте такую ситуацию: вы хотите отправить конфиденциальное сообщение коллеге, обеспечив его безопасность до момента доставки.

Сначала попросите коллегу прислать вам замок, ключ от которого есть только у него.

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

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

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

Этот механизм открытых и закрытых ключей лежит в основе функционала TLS, позволяя сторонам открыто осуществлять коммуникацию и при этом устанавливать безопасные частные каналы связи.

Сертификаты

Сертификаты содержат открытые и закрытые ключи, аутентифицированные доверенными центрами сертификации.

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

Сертификаты Frame.io проходят проверку центром сертификации Amazon Root CA 1. Эти сертификаты доступны в различных ресурсах, включая библиотеку Certifi (используется Mozilla и библиотекой Python Requests).

Для реализации мы рекомендуем репозиторий Certifi на GitHub и PEM-пакет сертификатов для проверки запросов HTTPS к api.frame.io.

Сервер

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

Клиент

Клиентское приложение запрашивает информацию с сервера или отправляет ее на сервер. При реализации API-интерфейса C2C вы будете разрабатывать клиент C2C.

HTTP/S

Hypertext Transfer Protocol/Secure — работает на прикладном уровне модели TCP/IP. Отличие HTTP от HTTPS заключается в безопасности. HTTPS включает проверку TLS/SSL в сетевые коммуникации. HTTP развивался через различные версии, устанавливая новые стандарты с течением времени. Версия 1.1 остается глобальным стандартом и должна использоваться для коммуникаций API-интерфейса Frame.io.

RESTful API

REST (Representational State Transfer) — это методология проектирования для разработки API-интерфейса на основе схем запрос-ответ HTTP. REST часто используется как сокращенное обозначение общего подхода к использованию HTTP для взаимодействия между программами (в отличие от коммуникации браузер–веб-страница), даже когда API-интерфейс не строго соответствует принципам REST.

JSON

JavaScript Object Notation — стандартизированный формат обмена данными. Хотя изначально разработан для объектов JavaScript, он стал универсальным стандартом для сетевых коммуникаций. API-интерфейс C2C предоставляет ответы в формате данных JSON.

AWS S3

Simple Storage Service от Amazon предоставляет облачные решения для хранения данных. S3 хранит видео- и аудиофайлы Frame.io и служит местом назначения для добавления интеграций.

Запросы HTTP/S

HTTP повсеместно используется при просмотре веб-страниц — отображается в начале почти каждого адреса веб-сайта. HTTP (Hypertext Transfer Protocol) устанавливает стандартизированные протоколы связи между компьютерами.

HTTP можно представить как стандартизированную систему форм для взаимодействия клиент–сервер, аналогично государственным формам, необходимым для информационных запросов или заявок на программы. Без правильно заполненных форм государственные учреждения не могут обрабатывать запросы или отвечать на них.

Запросы HTTP обеспечивают все взаимодействия приложения Frame.io. В рамках системы API-интерфейса C2C типы запросов HTTP представляют доступные функциональные возможности.

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

Компоненты URL
  • Протокол

  • Хост

  • Порт

  • Ресурс

Элементы HTTP
  • Заголовки

  • Content-Type/Mimetype

  • Полезные нагрузки запросов и ответов

  • Приложения команд HTTP: GET, POST, PUT, DELETE и т. д.

  • Данные формы

Хотя сетевые библиотеки обычно обрабатывают создание запросов, HTTP/1.1 RFC предоставляет справочный ресурс при необходимости.

Аутентификация и авторизация

Мы изучим эти концепции более подробно позже, но понимание этих основополагающих принципов важно:

Аутентификация

Аутентификация проверяет, поступают ли запросы от заявленных источников. Когда вы входите на веб-сайты, используя имя пользователя и пароль, вы проходите аутентификацию, подтверждая знание пароля. Многофакторная аутентификация, например получение проверочных кодов через текстовые сообщения представляет дополнительные механизмы аутентификации.

Авторизация

Авторизация подтверждает разрешение на выполнение определенных действий. Когда вы добавляете соавторов в проекты Frame.io или документы Google, вы авторизуете их доступ. Frame.io или Google ранее уже аутентифицировали личности этих пользователей, что позволяет вам уверенно авторизовать их участие.

OAuth

OAuth (Open Authorization) предоставляет стандартизированную систему для управления авторизацией путем интеграции со сторонними службами аутентификации.

Области доступа

Области доступа определяют разрешенные для пользователя действия. При подключении устройств к Frame.io вы будете запрашивать и получать определенные области доступа, которые авторизуют конкретные операции. Например, область доступа asset_create разрешает создание и добавление ресурсов. В целом, области доступа функционируют как наборы разрешений.

Дальнейшие шаги

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

Если требуется технический обзор, см. руководство по архитектуре интеграции. Если вы еще не сделали этого, просмотрите руководство Реализация C2C: настройка перед продолжением. Вам понадобится access_token, полученный в процессе аутентификации и авторизации.