news 2026/5/10 13:16:46

【技术教程】TrustFlow 授权策略是怎么实现的?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【技术教程】TrustFlow 授权策略是怎么实现的?

打开链接即可点亮社区Star,照亮技术的前进之路。

Github 地址:https://github.com/secretflow/trustflow/

TrustFlow提供了一套简洁易懂的语法帮助用户对数据使用行为的授权进行描述。接下来我们会详细描述这套语法,并结合示例进行讲解。

授权策略概览

  • constraint:约束表达式,描述了具体的数据使用行为约束。
  • rule: 指具体的策略规则,rule本质上由一条或者多条约束表达式组成。
  • policy:指作用于具体数据的授权策略,policy由一条或者多条rule组成。

constraint

constraint本质上是描述“访问控制”这件事,比如允许对数据进行什么样的计算。

可限制的元信息

constraint支持对以下元信息进行限制。具体语法上,每一条constraint的元素都是以r.作为开头。(TrustFlow采用了casbin作为底层的访问控制实现)

platform

在global_constraints下设置。
限制代码运行的TEE平台。目前可选sim/sgx/tdx/csv

r.env.tee.platform=="tee platform type"
mr_enclave

在global_constraints下设置。
限制代码的MRENCLAVE,关于MRENCLAVE的说明参见 Enclave 。

r.env.tee.sgx.mr_encalve=="mrenclave of the enclave"
mr_signer

在global_constraints下设置。
限制代码的MRSIGNER,关于MRSIGNER的说明参见 Enclave 。

r.env.tee.sgx.mr_signer=="mrsigner of the enclave"
(暂不可用) execution_time

在global_constraints下设置。
限制执行时间。

r.execution_time<="2023-10-01 23:59:59"
(暂不可用) op参数

在op_constraints下设置。
限制可信app的参数。具体参数名可以在可信APP中找到对应的app查询。
例如限制回归类型为逻辑回归:

r.op.params.reg_type=="logistic"

元素之间支持的操作符

用户可以根据需要对元信息进行操作,TrustFlow支持的操符作如下。

rule

成员说明

rule包含以下信息。

rule_id

每一条rule都会有一个ID用于标识它。

grantee_party_ids

列表形式,由被授权方的机构ID组成。

op_constraints

op_constraints表示作用于特定算法的约束,由一条或者多条op_constraint组成。op_constraint表示针对具体算子的约束,包含算子名称和一条或者多条constraint。
如果没有填写op_constraints,则表示不允许进行任何计算。

global_constraints

作用于全局的约束,由一条或者多条constraint组成。

(可选)columns

对于结构化数据,可以限定数据的哪些列可以被使用。

使用示例

下列rule描述了以下限制

  1. 被授权方为bob和carol
  2. 允许使用数据列f1、f2和f3
  3. 允许xgb_train组件使用数据
  4. 允许lr_train组件进行逻辑回归时使用数据
  5. 限制组件运行平台为sgx
  6. 限制代码的mr_enclave为MRENCLAVE
{"rule_id":"test_rule_id","grantee_party_ids":["bob","carol"],"columns":["f1","f2","f3"],"op_constraints":[{"op_name":"xgb_train","constraints":[]},{"op_name":"lr_train","constraints":["r.op.params.reg_type==\"logistic\""]}],"global_constraints":["r.env.tee.platform==\"sgx\"","r.env.tee.sgx.mr_enclave==\"MRENCLAVE\""]}

policy

policy描述了完整的授权策略。

成员说明

data_uuid

策略所作用于的数据id。

rules

由一条或者多条rule组成的列表。

示例

我们继续以上面rule的使用示例为例,一个完整的policy如下。

{"data_uuid":"data id","rules":[{"rule_id":"test_rule_id","grantee_party_ids":["bob","carol"],"columns":["f1","f2","f3"],"op_constraints":[{"op_name":"xgb_train","constraints":[]},{"op_name":"lr_train","constraints":["r.op.params.reg_type==\"logistic\""]}],"global_constraints":["r.env.tee.platform==\"sgx\"","r.env.tee.sgx.mr_enclave==\"MRENCLAVE\""]}]}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 20:49:10

丐版 OI 技巧 / 杂项部分总结 + 作者学习笔记

持久化区间修改区间查询线段树&#xff1a;SP11470 TTM - To the moon点击查看代码2. 有后效性的 dpCF24D Broken robot一般用高斯消元 求解。也可以多跑几遍朴素 dp 使误差降到可接受范围内。多跑几遍的代码3. P14402 [JOISC 2016] 危险的滑冰 / Dangerous Skating图论建模。思…

作者头像 李华
网站建设 2026/5/9 17:11:45

CBAM核查规则正式明确:这4类企业,2025年开始风险差距会被迅速拉开

一、CBAM真正进入“可核查阶段”&#xff0c;企业开始被分层随着欧盟正式公布 CBAM 两项关键核查法规草案&#xff08;授权法规 实施法规&#xff09;&#xff0c;CBAM 已经不再只是“填报义务”&#xff0c;而是进入可核查、可追责、可比较阶段。对中国出口企业来说&#xff…

作者头像 李华
网站建设 2026/5/9 16:29:48

AI 模型识别 Nginx 流量中爬虫机器人的防御机制

要实现基于AI模型识别Nginx流量中爬虫机器人的防御机制&#xff0c;核心思路是从Nginx流量中提取特征→训练AI模型区分爬虫/正常请求→将模型集成到Nginx中实时拦截。以下是分步骤的详细落地指南&#xff0c;从入门到实操&#xff0c;覆盖全流程&#xff1a; 一、先明确核心边界…

作者头像 李华
网站建设 2026/5/11 1:34:19

【Wolfram语言】20Ex 绘制洛书

引言 近日看到有关河图洛书的视频。我突发奇想,能否用目前所介绍的Wolfram语言来绘制一幅洛书呢? 起源 《周易》有云:“河出图,洛出书,圣人则之”。 传说上古有神龟从洛水出现,背负‘洛书’。 其图如下: 分析 粗看洛书是以黑点与白点排列成33矩阵。 因此可将九个数…

作者头像 李华
网站建设 2026/5/8 14:35:11

3.1 符号主义:基于逻辑的推理系统、知识表示与专家系统

3.1 符号主义&#xff1a;基于逻辑的推理系统、知识表示与专家系统 符号主义&#xff0c;亦称为逻辑主义或“老式人工智能”&#xff0c;是人工智能发展史上第一个形成完整体系并长期占据主导地位的研究范式。其核心假设在于&#xff1a;人类智能&#xff0c;特别是高阶认知功…

作者头像 李华
网站建设 2026/5/10 0:18:50

企业选对会议服务商:7个关键维度避坑指南

企业选对会议服务商&#xff1a;7个关键维度避坑指南 在数字化转型浪潮下&#xff0c;会议活动已从简单的场地与人员组织&#xff0c;演变为一个集技术集成、创意策划与精准执行于一体的复杂系统工程。企业选择会议服务商&#xff0c;实质上是选择一位能够驾驭技术变革、保障活…

作者头像 李华