You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Orion Context Broker实体访问安全:如何限制仅创建者修改实体属性

实现方案

你可以通过FIWARE生态内的Keyrock + Wilma PEP + Orion自带的属性透传能力组合实现该权限管控,完整步骤如下:

步骤1:配置Orion实体自动注入创建者标识

首先开启Orion的服务端上下文提供者能力,在实体创建请求触发时自动注入entity-owner属性,属性值取请求头携带的用户ID(由Wilma PEP转发的Keyrock认证后的用户标识,通常是X-User-Id请求头)。
修改Orion启动参数,添加以下配置:

- Orion.ldContext=https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld
- Orion.corsOrigin=*
- Orion.authnHeader=X-User-Id

这样所有经过Wilma转发的合法请求,Orion都会自动从请求头读取用户ID,在新实体创建时自动追加entity-owner属性,该属性默认设为只读,普通用户无法通过更新接口修改。

步骤2:在Keyrock中配置细粒度权限规则

Keyrock支持基于请求路径和请求体内容的细粒度权限校验,你需要新增一条针对Orion更新接口的权限策略:

  • 权限作用接口:POST /v2/entities/*/attrs, PATCH /v2/entities/*/attrs 所有实体更新类接口
  • 校验规则:请求体中待更新的实体对应的entity-owner属性值,必须等于请求携带的X-User-Id头对应的用户ID
  • 权限生效范围:仅给普通用户绑定该策略,管理员账号可以保留全量操作权限

步骤3:配置Wilma PEP的校验策略

在Wilma的配置文件中开启level=advanced的权限校验模式,让PEP在转发请求到Orion之前,先代理请求到Keyrock做策略校验:

pep:
  port: 1026
  proxyHost: orion
  proxyPort: 1026
  idm:
    host: keyrock
    port: 3000
    ssl: false
  auth:
    enabled: true
    fineGrained: true

配置完成后重启Wilma服务即可生效。

验证逻辑

你可以用测试账号A创建一个实体,再用测试账号B发起该实体的更新请求,预期会返回403 Forbidden错误,只有账号A发起的更新请求能正常执行。

注意:如果有批量实体更新需求,你可以额外在Keyrock中添加例外策略,给指定运维账号开放批量操作权限即可。

内容的提问来源于stack exchange,提问作者gasp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:21:01