介绍:Auth/Role/Rule 权限结构

在 Fluree 中,User 可以有多个 Auth Record (授权),而每一个授权可以包含多组角色 (Role),每一个角色则是有多个可以对数据操作的特定权限,叫做规则 (Rule)

例如我有一个 User 叫做 John,他同时有管理员授权 (Auth: admin) 以及标准使用者授权 (Auth: standardUser)

Untitled

而标准使用者授权包含一个身份,是聊天使用者 (chatUser),而管理员授权比标准使用者在多了一个数据库管理员身份 (dbAdmin)

而聊天使用者与数据库管理员的身份底下,分别有多个规则 (Rules):

Untitled

聊天使用者能:

  1. 读取所有的聊天内容
  2. 读取所有的使用者
  3. 读取和写入自己的聊天信息

而数据库管理员却有:

  1. 读取与写入所有使用者信息
  2. 产生与撤销登入通证

所以这就是 User -> Auth -> Role -> Rule 的结构,每一个 DB 操作最核心就是看 Auth record,而使用者可以拥有多个 Auth record。

第一步:创建 Auth

每一笔 Auth record 都包含了 Public key + Private key + Auth ID,产生方式可以在 fluree 网站上建立,这边示范在 nodejs 中透过 @fluree/crypto-utils 建立一组 Auth record

首先建立一个空的 nodejs project ,并安装 crypto-utils: