使用 AuthZForce 为 FIWARE 服务实施细粒度访问控制

问题描述 投票:0回答:1

我正在使用 Keyrock、Wilma 和 AuthZForce 来保护 FIWARE 系统(Orion、Quantum Leap)的安全。我的目标是基于FIWARE服务实现细粒度的访问控制。

我们系统中的每个实体都属于一个服务,由 Fiware-Service 标头标识。我想根据用户角色限制对这些服务的访问:

**User1**: Can only access *fiwareservice1*
**User2**: Can access *fiwareservice2* and *fiwareservice3*
**User3**: Can access all *services*

我正在努力在 AuthZForce 中创建适当的 XACML 策略来强制执行这些规则。有人成功实施了类似的设置吗?

如果这种方法不理想或者是否有其他方法可以在 FIWARE 中管理基于服务的访问控制,我愿意接受建议。

fiware xacml authzforce pdp fiware-keyrock
1个回答
0
投票

为此,您不需要 Authzforce,您可以使用 Wilma 作为 PEP,使用 Keyrock 作为 IDM/PDP。在 wilma 中,您需要为

authorization.header
设置适当的配置 -
NGSILD-Tenant
fiware-service
- 像这样:

config.authorization = {
  enabled: true,
  pdp: 'idm',
  header: fiware-service
  location: {
    protocol: 'http',
    host: 'keyrock',
    port: 3000,
    path: '' 
  },
  azf: {
    custom_policy: undefined,
  },
};

如果您使用的是 Docker 映像,则这是由

PEP_PROXY_TENANT_HEADER
环境变量控制的。

在 Keyrock 中,您可以定义使用

Authorization Service header
的权限,因此您可以为 User1、User2 和 User3 制定单独的规则。

Keyrock Permission

© www.soinside.com 2019 - 2024. All rights reserved.