概念与基础知识
概念与基础知识
理解核心概念
C2C API 依赖于几项关键技术,在开始集成项目之前,您应该了解这些技术。 请查阅本文中的各个标题——如果有任何不熟悉的术语,本指南将帮助您填补这些知识空白。 如果您在特定概念方面遇到困难,我们的团队可以提供额外的资源和支持。
您需要了解的内容
要成功集成 C2C API,您应该对以下各项有基本了解:
TLS/SSL、TCP/IP 协议及网络基础知识
安全 HTTPS 请求的实施
身份验证和授权方法
网络基础知识与词汇表
Frame.io API 的核心功能是实现 Frame.io 服务器与您的设备或应用程序之间的通信,因此每项操作都需要进行网络交互。
清晰的通信在任何关系中都至关重要,包括服务器与客户端之间的关系。 正如日常对话中会出现误解一样,计算机在交换信息时也存在类似的挑战。
除了解决标准的通信问题之外,我们还需要确保敏感数据的安全传输。 Frame.io 要求对所有服务器通信都进行加密,从而为该过程添加了必要的安全层。
在实施 C2C API 过程中,您可能会使用第三方库来处理网络方面的细节。 然而,由于网络组件经常会产生现实世界的错误,因此在与 Frame.io 服务器进行交互时,了解其底层处理流程还是很有价值的。 以下是关于基本术语的简明词汇表:
传输控制协议/互联网协议 - 能够实现全球数据传输的标准化组件和网络层。 如需了解更多信息,我们推荐这个易于理解的高阶资源。
传输层安全/安全套接层 - 虽然技术上有所不同,但如今人们通常将它们互换使用。 TLS 代表了 SSL 的演进,但原来的缩写仍被广泛使用。 如需了解有关 TLS 的更多信息,请查阅此概述。
公钥与私钥
公钥的作用就像一把锁,而私钥则相当于与之匹配的钥匙。
设想这样一个场景:您想向一位同事发送一条机密消息,并确保在送达之前保持私密。
首先,请您的同事给您寄来一把锁,这把锁只有他们自己有钥匙。
收到这把锁后,使用它将您的机密消息锁在一个容器中。 虽然任何经手该容器的人都能看到这把锁,但只有您的同事有钥匙来打开容器获取里面的内容。 对于试图查看消息的未经授权方来说,这把锁没有任何价值。 甚至您自己,如果没有钥匙,也无法打开它。
当您的同事收到这个安全容器时,他们只需用自己的钥匙就能打开并获取内容。
公钥和私钥的工作原理与此相同。 您可以广泛共享公钥。 收件人使用此公钥加密消息,但只有私钥持有者才能解密这些通信内容。 只要私钥保持机密,就无法使用公钥来解码由它所生成的加密消息。
这种公钥/私钥机制是 TLS 功能的基础,它允许通信各方在建立安全、私密通道的同时进行公开通信。
证书
证书包含公钥和私钥,并由受信任的证书颁发机构进行认证。
当证书颁发机构验证一个密钥时,它实质上是在为该密钥的真实性提供担保。 公钥的接收方(例如来自 Google 的公钥)可以验证该公钥是否获得了公认证书颁发机构的这种担保。 未经担保的密钥被视为可能存在欺诈风险,并会触发安全警报。
Frame.io 的证书由 Amazon Root CA 1 证书颁发机构进行验证。 这些证书可通过多种资源获取,包括 Certifi 库(由 Mozilla 和 Python Requests 库所使用)。
对于实施,我们推荐使用 Certifi GitHub 存储库和证书 PEM 捆绑包来验证对 api.frame.io 发起的 HTTPS 请求。
一台为其他计算机提供或存储信息的计算机。 当您通过 Web 浏览器访问 Frame.io 时,您的浏览器会向 Frame.io 的服务器请求内容,服务器则会相应地进行响应。 Frame.io 中的每项操作都会触发您的浏览器与我们服务器之间的通信,服务器会处理您的请求并返回相应的结果。 当您向 Frame.io 上传媒体文件时,就是在将该文件发送到我们的服务器上。
客户端应用程序向服务器请求信息,或向服务器发送数据。 在实施 C2C API 时,您将开发一个 C2C 客户端。
超文本传输协议/安全协议 - 在 TCP/IP 模型的应用层内运行。 HTTP 和 HTTPS 之间的区别在于安全性——HTTPS 将 TLS/SSL 验证纳入网络通信中。 HTTP 经历了多个版本的演进,随着时间的推移建立了新的标准。 版本 1.1 仍然是全球标准,应该用于 Frame.io API 通信。
REST(表述性状态转移)是一种基于 HTTP 请求-响应模式来开发 API 的设计方法。 REST 通常作为使用 HTTP 进行程序间交互的通用方法的简写(区别于浏览器与网页之间的通信),即使 API 并未严格遵循 REST 原则。
JavaScript 对象表示法 - 一种标准化的数据交换格式。 虽然最初是为 JavaScript 对象开发的,但它已成为网络通信的通用标准。 C2C API 以 JSON 数据的形式返回响应。
Amazon 的简单存储服务提供基于云的数据存储解决方案。 S3 存储 Frame.io 的视频和音频媒体文件,并作为集成上传的目标位置。
HTTP/S 请求
HTTP 在 Web 浏览中无处不在——几乎出现在每一个网站地址的开头。 HTTP(超文本传输协议)建立了标准化的计算机到计算机通信协议。
您可以将 HTTP 理解为客户端-服务器交互中的一种标准化表单系统,类似于政府要求填写用于信息请求或项目申请的表单。 如果没有正确填写的表单,政府机构就无法处理或回应这些请求。
HTTP 请求为所有 Frame.io 应用程序交互提供支持。 在 C2C API 框架中,HTTP 请求类型代表了可用的功能能力。
如需全面了解 HTTP,请参阅这篇信息丰富的文章。 在继续之前,理解这些基础知识至关重要。 如果您刚接触 HTTP 请求,可以考虑先查阅一些入门资料。 为了做好最充分的准备,请熟悉以下 HTTP 概念:
-
协议
-
主机
-
端口
-
资源
-
标头
-
内容类型/MIME 类型
-
请求与响应负载
-
HTTP 动词的应用:GET、POST、PUT、DELETE 等。
-
表单数据
虽然网络库通常负责处理请求构建,但 HTTP/1.1 RFC 在需要时仍可作为参考资源。
身份验证和授权
我们稍后会更深入地探讨这些概念,但理解以下基本原则也很重要:
身份验证用于确认请求是否确实来自其所声称的来源。 当您使用用户名/密码凭据登录网站时,您是在通过证明自己知晓密码来进行身份验证。 多重身份验证(例如通过短信接收验证码)代表额外的身份验证机制。
授权用于确认是否拥有执行特定操作的权限。 当您将协作者添加到 Frame.io 项目或 Google 文档中时,您就是在授予他们访问权限。 Frame.io 或 Google 事先已经验证了这些用户的身份,使您能够放心地授权他们参与。
OAuth(开放授权)通过与第三方身份验证服务集成,为授权管理提供了一个标准化的框架。
权限范围定义了用户可以执行的授权操作。 将设备连接到 Frame.io 时,您会请求并接收特定的权限范围,用于授权特定的操作。 例如,asset_create 权限范围允许创建和上传资产。 从概念上讲,权限范围的功能类似于权限集。
后续步骤
我们鼓励您就任何疑问联系我们的团队,然后继续阅读本指南的下一部分。 我们期待为您的集成工作提供支持。
有关技术概述,请参阅集成架构指南。 如果您还没有阅读,请在继续之前先查阅实施 C2C:设置指南。 您需要用到在身份验证和授权流程中获取的 access_token。