授权
授权
授权是将对流的访问权限委派给与其所有者不同的帐户的行为。作为最佳实践,当向另一个账户授权时,应该遵循最小权限原则,并仅授权代表的临时密钥写入最少必要的数据到 Ceramic。
范围
CACAO和Ceramic支持一种基本的方式来描述授权包含的资源和操作。资源参数是一个字符串数组。在Ceramic中,这些字符串是StreamIDs或模型StreamIDs。表示的操作是写入访问权限,因为在协议级别上没有以任何方式授权读取访问权限。读取访问需要加密协议,因为流是公共的,并且现在不在范围内。
note:未来,我们期望能够根据操作(写入、删除、创建、更新等)和资源指定更细粒度的授权。
流
例如,要授权一个帐户仅写入两个特定流,则可以在 CACAO 中将 streamIds 指定为资源,如下所示:
模型
最常用的模式是通过指定模型流ID来指定授权。 模型是可以在流初始化事件中定义的属性。 当与CACAO一起指定并使用时,它允许DID和密钥为该用户的所有流写入具有此特定模型值的数据。
Note: 将来可能会在流中支持除了模型之外的其他键和值,用于授权。
目前,模型主要用作建立在 Ceramic 之上的更高级别概念。一组模型通常描述应用程序的整个写入数据模型,使用户可以逻辑地授权应用程序写入所需的所有流。例如,一个简单的社交应用程序具有用户配置文件和帖子两个相应的模型。CACAO 将由这两个模型 streamId 数组指定资源,如下所示。这将允许拥有此 CACAO 的 DID 创建并写入任何具备这些模型流的流,并允许它创建尽可能多的帖子。由模型 streamID 定义的资源格式为 ceramic://*?model=<StreamId> 并且对于先前示例将定义如下。
通配符最后,支持所有资源的通配符。出于安全原因,通配符将在未来被弃用,并且仅包含在此处以完整性。
Last updated