在 Fluree 中,User 可以有多个 Auth Record (授权),而每一个授权可以包含多组角色 (Role),每一个角色则是有多个可以对数据操作的特定权限,叫做规则 (Rule)
例如我有一个 User 叫做 John,他同时有管理员授权 (Auth: admin) 以及标准使用者授权 (Auth: standardUser)
而标准使用者授权包含一个身份,是聊天使用者 (chatUser),而管理员授权比标准使用者在多了一个数据库管理员身份 (dbAdmin)
而聊天使用者与数据库管理员的身份底下,分别有多个规则 (Rules):
聊天使用者能:
而数据库管理员却有:
所以这就是 User -> Auth -> Role -> Rule 的结构,每一个 DB 操作最核心就是看 Auth record,而使用者可以拥有多个 Auth record。
每一笔 Auth record 都包含了 Public key + Private key + Auth ID,产生方式可以在 fluree 网站上建立,这边示范在 nodejs 中透过 @fluree/crypto-utils
建立一组 Auth record
首先建立一个空的 nodejs project ,并安装 crypto-utils: