设置 PEP 代理

2024-02-12

我一直在研究 PEP-Proxy-Steelskin,以便我可以为我的 Orion Context 提供一些安全层,但是,有一些问题阻碍了我的进展。

我想使用 IDM 和 Keystone 全局实例。

我已按照相应的指示成功安装了 pepProxy (https://github.com/telefonicaid/fiware-pep-steelskin https://github.com/telefonicaid/fiware-pep-steelskin),但是,结果总是相同的:

{
"name": "KEYSTONE_AUTHENTICATION_ERROR",
  "message": "There was a connection error while authenticating to Keystone: 500"
}

我的配置使用的是config.js文件如下:

var config = {};

// Protected Resource configuration
//--------------------------------------------------
// Configures the address of the component that is being proxied and the address of the proxy itself.
config.resource = {
    original: {
        /**
         * Host that is being proxied.
         */
        host: 'account.lab.fiware.org',

        /**
         * Port where the proxied server is listening.
         */
        port: 10026
    },

    proxy: {
        /**
         * Port where the proxy is listening to redirect requests.
         */
        port: 1026,

        /**
         * Administration port for the proxy.
         */
        adminPort: 11211
    }
};

// Access Control configuration
//--------------------------------------------------
/**
 * This options can be used to configure the address and options of the Access Control, responsible of the request
 * validation.
 */
config.access = {
    /**
     * Indicates whether the access control validation should be enabled. Defaults to false.
     */
    disable: false,

    /**
     * Protocol to use to access the Access Control.
     */
    protocol: 'http',
    /**
     * Host where the Access Control is located.
     */
    host: 'account.lab.fiware.org',
    /**
     * Port where the Access Control is listening.
     */
    port: 7070,
    /**
     * Path of the authentication action.
     */
    path: '/pdp/v3'
}

// User identity configuration
//--------------------------------------------------
/**
 * Information about the Identity Manager server from where the information about a user will be drawn.
 */
config.authentication = {
    checkHeaders: false,
    module: 'keystone',
    user: 'pep_proxy_99c595...',
    password: 'e3025a2...',
    domainName: 'matest',
    retries: 3,
    cacheTTLs: {
        users: 1000,
        projectIds: 1000,
        roles: 60,
        validation: 120
    },
    options: {
        protocol: 'http',
        host: 'cloud.lab.fiware.org',
        port: 5000,
        path: '/v3/role_assignments',
        authPath: '/v3/auth/tokens'
    }
};


// Security configuration
//--------------------------------------------------
config.ssl = {
    /**
     * This flag activates the HTTPS protocol in the server. The endpoint always listen to the indicated port
     * independently of the chosen protocol.
     */
    active: false,

    /**
     * Key file to use for codifying the HTTPS requests. Only mandatory when the flag active is true.
     */
    keyFile: '',

    /**
     * SSL Certificate to present to the clients. Only mandatory when the flag active is true.
     */
    certFile: ''
}

/**
 * Default log level. Can be one of: 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL'
 */
config.logLevel = 'FATAL';

// List of component middlewares
//-------------------------------------------------
/**
 * To validate the request, the proxy needs some information that is dependant of the component: the action that a
 * request is going to execute. How to detect the action given the request is component-specific logic, that can be
 * codified in a middleware-like function that will be executed before the user validation. This logic must populate
 * the 'action' parameter of the request.
 */
config.middlewares = {
    /**
     * Indicates the module from where the middlewares will be loaded.
     */
    require: 'lib/plugins/orionPlugin',

    /**
     * Indicates the list of middlewares to load.
     */
    functions: [
        'extractCBAction'
    ]
};

/**
 * If this flag is activated, whenever the pepProxy is not able to redirect a request, instead of returning a 501 error
 * (that is the default functionality) the PEP Proxy process will exit with a -2 code.
 */
config.dieOnRedirectError = false;

/**
 * Name of the component. It will be used in the generation of the FRN.
 */
config.componentName = 'orion';

/**
 * Prefix to use in the FRN (Not to change, usually).
 */
config.resourceNamePrefix = 'fiware:';

/**
 * Indicates whether this PEP should have an admin bypass or not. If it does, whenever a user request arrives to the
 * PEP from a user that has the role defined in the "adminRoleId" property, that request is not validated against the
 * Access Control, but it is automatically proxied instead.
 */
config.bypass = false;

/**
 * ID of the admin user if it exists. Only effective if the "bypass" property is true.
 */
config.bypassRoleId = '';

/**
 * Configures the maximum number of clients that can be simultaneously queued while waiting for the PEP to
 * authenticate itself against Keystone (due to an expired token).
 */
config.maxQueuedClients = 1000;

module.exports = config;

在这种情况下:

  1. 使用是否正确account.lab.fiware.org,作为资源和访问主机还是我应该使用不同的主机?
  2. 使用是否正确cloud.lab.fiware.org,作为认证主机?
  3. 用户和密码由我的 IDM 全局实例自动创建。角色和权限是通过同一全局实例分配的。此程序是否合适,或者我应该遵循不同的程序?
  4. 我错过了什么吗?

有人对我的问题有任何提示吗?

注:我已经尝试过不同的帖子并取得成功。部分原因是许多解决方案都安装了自己的基石,例如:PEP-Proxy-Steelskin 日志配置 https://stackoverflow.com/questions/30888451/pep-proxy-steelskin-log-configuration , 用于集成 IDM GE、PEP 代理和 Cosmos 大数据的 PEP 代理配置文件 https://stackoverflow.com/questions/32092430/pep-proxy-config-file-for-integration-of-idm-ge-pep-proxy-and-cosmos-big-data , PEP-Proxy-Steelskin 日志配置 https://stackoverflow.com/questions/30888451/pep-proxy-steelskin-log-configuration。这是与我一直在做的事情更相关的一个,但我仍然认为它不是最新的:固件 Orion - pepProxy https://stackoverflow.com/questions/29561163/fiware-orion-pepproxy


我@netzahdzc 很抱歉,如果这不是您希望的答复,但我已经有一段时间不使用固件技术了,所以我不记得所有内容,但我会尽力提供帮助。

使用 account.lab.fiware.org 作为资源和访问主机是否正确,还是应该使用其他主机?

我认为你使用的是正确的,请参考我的项目的配置文件:GitHub https://github.com/Introsys/fresh/tree/master/servers_cfgs,这个项目是“旧的”,所以有些东西可能已经从固件方面发生了变化......正如你在PepProxy-config.js我使用的实例与你相同:

    config.account_host = 'https://account.lab.fiware.org';
    config.keystone_host = 'cloud.lab.fiware.org';
    config.keystone_port = 4730;

使用cloud.lab.fiware.org作为身份验证主机是否正确?

在我使用的配置(上面)中,您可以看到帐户主机 is the account.lab.fiware.orgkeystone_host(用于身份验证)是cloud.lab.fiware.org,所以我认为你是对的。

用户和密码由我的 IDM 全局实例自动创建。角色和权限是通过同一全局实例分配的。此程序是否合适,或者我应该遵循不同的程序?

我没有深入研究这个问题,但回想一下,是的,你是对的,角色和权限应该由 Keystone 全局实例处理,但我不知道自从我使用这个以来事情是否发生了变化。

抱歉,如果我无法提供更多帮助,请尝试看看您是否可以使用我的一些配置,或者至少它是否可以帮助您。您也可以尝试与丹尼尔·莫兰·希门尼斯 https://stackoverflow.com/users/4340880/daniel-mor%C3%A1n-jim%C3%A9nez,我相信他能比我更好地帮助你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 PEP 代理 的相关文章

  • OpenStack之keystone(T版)

    这里写目录标题 一 概述二 主要功能三 相关概念四 认证流程五 创建虚拟机的过程六 部署一 创建数据库实例和用户二 安装keystone Apache一 配置keystone二 初始化认证服务数据库三 初始化fernet密钥存储库四 配置b
  • 【TEE自学随笔】keystone代码略读(长文多图)

    武大信安在读 xff0c 最近在自学Risc v架构的可信执行环境 本篇内容由队友和我总结而成 xff0c 如有错误欢迎指正交流 keystone是risc v架构的开源tee 利用risc v的pmp来隔离页表 xff0c 进一步缩小了可
  • Keystone 高可靠性部署与性能测试

    Goal Keystone Region 为跨地域的 Openstack 集群提供了统一的认证和用户租户管理 目前公司在国内外部署了数十套 Openstack 集群 其中既有集群在内网 又有集群在公网 既有 Havana 集群 也有 Ice
  • 固件错误:Access-Control-Allow-Origin

    我正在调用 contextBroker 它给了我这个错误 Response to preflight request doesn t pass access control check No Access Control Allow Ori
  • Orion API 通过 Keycloak 进行身份验证

    我想通过 Keycloak IdM 在 Orion API 上添加身份验证 我知道可以将 Orion 与 Pep Proxy Wilma 和 Keyrock 一起使用来完成此任务 并且可能的解决方法是将 keyrock 与 keycloak
  • Orion 的配置管理器与 PubSub Broker

    查看 FIWARE 目录 我看到 Orion Context 的两个条目 经纪人 一个名为 发布 订阅代理 还有另一个 为了 配置管理器 So 为什么有两个条目 它们对应的是同一个软件吗 我什么时候应该使用发布 订阅代理以及什么时候我应该使
  • ORION:获取订阅列表

    我有兴趣访问活动订阅列表 但在阅读了所有有关 API 的 wiki 后 https forge fi ware org plugins mediawiki wiki fiware index php Publish Subscribe Br
  • 如何使 rush 与我的 orionInstance 一起工作

    按照我之前的问题如何在 MapViewer 小部件中显示来自 OrionContextBroker 的实体我使用 Rush 配置了我的上下文代理实例 并且正在使用https ngsiproxy lab fi ware org作为 NGSI
  • ContextBroker 订阅错误

    我已按照本教程安装 NGSI 将 cygnus 从版本 0 13 更新到 1 7 0 https github com telefonicaid fiware cygnus tree master cygnus ngsi https git
  • 如何在FIWARE中达到安全级别3?

    我正在我的计算机中部署 FIWARE 安全 GE 即 Wilma AuthzForce Keyrock 安全级别 2 基本授权 运行良好 但现在我需要使用 XACML 的安全级别 3 高级授权 长话短说 我想要一个实现安全级别3的教程 但是
  • Fiware-Orion:订阅所有实体

    在 Orion 1 4 0 中我使用以下 JSON 来订阅对于所有实体 description Update average rating subject entities idPattern type condition attrs no
  • 在 lubuntu 15.04 上构建 Kurento

    我正在尝试在我的 lubuntu 15 04 上构建整个 Kurento 与 ubuntu 15 04 相同 但 UI 不同 我首先克隆所有存储库 mkdir kurento cd kurento git clone https githu
  • 如何配置系统以使用 FIWARE yum 存储库?

    我知道 FI WARE 提供了一个公共 yum 存储库 位于http repositories testbed fiware org http repositories testbed fiware org 可用于安装 FI WARE 软件
  • 从 Keyrock 固件 API 获取 Auth-Token

    我在我的笔记本电脑上的 docker 本地运行 Keyrock Fiware 我知道这有效 因为我可以访问http localhost 8000 and http localhost 8000 sign up通过我的浏览器 他们响应正确 我
  • 固件:配置 orion 上下文代理端口

    我在用着Orion 上下文代理 http catalogue fi ware org enablers publishsubscribe context broker orion context broker但默认端口在我的组织中无效 防火
  • 创建虚拟机实例后如何扩展默认分区? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用 FI WARE 云创建了一个具有 12GB 磁盘的 Centos x64 VM 实例 我可以毫无问题地访问它 并且我已经开始安装软
  • Orion 的 Freeboard 数据源与 Context Broker 之间没有连接

    我一直在尝试连接 Freeboard 以可视化来自 OCB 的上下文信息 但是遇到了一些困难 导致我无法从那里接收任何数据 我的想法是 将Freeboard连接到OCB有问题 因为在OCB的订阅列表中没有任何新条目 并且Freeboard中
  • 发布后订阅状态发生变化

    成功安装 Cygnus 连接器并测试订阅的创建后 具有以下文件 agent 1 conf cygnus ngsi sources http source cygnus ngsi sinks hdfs sink cygnus ngsi cha
  • 通过 MQTT 将 LoRa 测量结果发送到 Fiware IOT 代理

    我有 LoRa 传感器 它使用 Cayenne LPP 格式有效负载发送测量值 我的网关 LOrank8v1 捕获这些数据包并将其转换为 UDP 网关中有一个服务 lora gateway bridge 它将数据包从 UDP 转换为 TCP
  • Cygnus版本升级导致STH-Comet读取查询日志差异

    我正在研究 Cygnus 和 STH Comet 想了解 Cygnus 版本升级的影响 我使用以下 docker compose yml 创建了一个环境 而且 我已经在注释掉的部分中切换了 Cygnus 版本来进行调查 docker com

随机推荐

  • ASP.NET MVC:ValidationAttribute 和本地化 ErrorMessage

    我有 ValidationAttribute 像 public class Username ValidationAttribute public override bool IsValid object value if value nu
  • 使用 TableCellEditor 时如何获取鼠标单击位置的组件?

    我用的是自定义的TableCellRenderer与多个JFormattedTextField在表格单元格中 我使用相同的组件TableCellEditor 现在我需要知道在什么方面JFormattedTextField用户单击 以及该字段
  • 对所有列实施 NGX 数据表过滤

    我一直试图让它工作但没有运气 我一直在参考这些资源来寻求帮助 http swimlane github io ngx datatable filter http swimlane github io ngx datatable filter
  • 通过电子邮件和 PHP 进行电子邮件验证?

    我在一些网站上看到 用户可以简单地向类似的网站发送一封空白电子邮件 电子邮件受保护 cdn cgi l email protection如果他们在获取验证电子邮件时遇到问题 请验证他们的电子邮件 我有一个使用 PHP MySQL 的网站 我
  • iOS:以 caf 以外的其他格式录制音频

    我正在从事录音工作 我可以在 caf 中录制音频 核心音频格式 现在我想录制声音 mp3 or amr 我尝试了很多谷歌但没有找到任何东西 我不确定我的以下步骤是否有效 编写该音频 caf文档目录的扩展名 从该文件读取数据 再次写入文件 m
  • Laravel:从多对多关系中进行条件选择

    我的帖子和主题有多对多的 Laravel 关系 帖子属于许多主题 主题属于许多帖子 我想获得帖子编号 gt 10 from 某个话题 以下代码将获取特定主题的所有帖子 topic Topic where id topic id gt get
  • 为什么没有 $(window).height();返回一个值,但是 $(document).height();做?

    我正在尝试使用 jQuery 来获取当前窗口高度 我打算用这个值设置一个变量 并在调整大小时更新该值 由于某种原因 window height 总是返回零 但是 document height 返回一个值 为什么会这样呢 为了简洁起见 代码
  • 按特定列选择不同的实体

    我有一个包含 4 列的表 id column a 和column b 我最初的查询基本上是 Session session initialize my hibernate session Criteria criteria session
  • Indy TIdTCPClient 接收文本

    我尝试在 idtcpclient 中接收文本 但它不起作用 这是我在计时器中使用的代码 procedure TForm1 Timer2Timer Sender TObject var receivedtext string begin if
  • Magento:从没有产品的属性集中获取属性

    我在 Magento 商店中设置了一个属性集 其中有几个二进制属性 对于下拉列表 我需要此属性集中所有属性的列表 包括它们的内部名称和标签 由于此下拉列表应该出现在不一定选择产品的地方 因此我不能走 获取产品属性 的通常路线 我如何获取集合
  • 如何设置 Job DSL 创建的多分支作业的发现模式

    我是詹金斯的新手 我正在尝试解决一些问题 有没有办法通过 Groovy 添加分支源行为 这是使用 Jenkins 分析 SonarQube 中的 GitHub 项目 I m creating a multi branch pipeline
  • elasticsearch 是非确定性的吗?

    由于elasticsearch计算分数的算法 每次执行查询时是否不会以相同的顺序返回相同的结果 或者是别的什么 有没有办法让每次执行查询时结果都以相同的顺序返回 这是正常的吗 这可能与 elasticsearch 默认在本地计算相关性分数的
  • 如何使 DockPanel 中的项目扩展以适应 WPF 中的所有可用空间?

    我有一个StackPanel含有一个StackPanel和其他一些物品 首先StackPanel具有垂直方向 内部具有水平方向 里面有一个TreeView and a ListView 我希望它们能够扩展并适应窗口的宽度 这是我通过窗口设置
  • 使用 TimeTCPClient 从公共时间服务器获取时间

    我尝试使用以下代码从公共时间服务器获取时间 package aaa import java util Arrays import java util List import org apache commons net TimeTCPCli
  • list.files 的性能问题

    我正在尝试使用以下命令从 3 个网络驱动器检索文件list files这需要永远 当我使用时find在 shell 中 它会在不到 15 秒的时间内返回所有结果 system time jnk lt list files c Volumes
  • Expo 安全存储在玩笑测试中不可用

    这个问题具体是关于expo secure store and jest 目前 我在登录时使用 expo secure store 来存储我的 JWT 它在模拟器上运行时工作正常 但是在 Jest 测试中根本不起作用 令牌返回为undefin
  • C# 通用复制构造函数

    我有一个接口和两个实现该接口的类 这些类具有泛型类型 我想从一个类的实例克隆到另一个类的实例 interface IFoo stuff class Foo
  • Intellij IDEA 11:如何从 .less 编译 .css?

    如何在 intellij 中从 less 编译 css 当然这应该很容易 但它让我难住了 有人知道怎么做吗 我写了一个当 LESS 文件发生变化时 它会自动将它们编译为 CSS 您可以配置多个 LESS 目录来监视每个项目 每个目录的输出将
  • 如何将 _locale 参数添加到安全路径?

    我设置了安全设置来保护根路径下的所有内容 除了查看隐私政策的公共页面外 privacy 一切正常 security yml access control path privacy role IS AUTHENTICATED ANONYMOU
  • 设置 PEP 代理

    我一直在研究 PEP Proxy Steelskin 以便我可以为我的 Orion Context 提供一些安全层 但是 有一些问题阻碍了我的进展 我想使用 IDM 和 Keystone 全局实例 我已按照相应的指示成功安装了 pepPro