gpt4 book ai didi

fiware - 用于集成 IDM GE、PEP 代理和 Cosmos 大数据的 PEP 代理配置文件

转载 作者:行者123 更新时间:2023-12-03 05:02:37 30 4
gpt4 key购买 nike

我有关于 PEP 代理文件的问题。我的 keystone 服务运行在 192.168.4.33:5000 上。我的 Horizo​​n 服务正在 192.168.4.33:443 上运行。

我的 WebHDFS 服务正在 192.168.4.180:50070 上运行我打算在 192.168.4.180:80 上运行 PEP 代理

但是我不明白的是我应该用什么来代替 config.account_host?在 keyrock 管理器的 mysql 数据库内部,有一个带有“idm”密码的“idm”用户,我通过curl在身份管理器上发出的每个请求都有效。

但使用此配置:

config.account_host = 'https://192.168.4.33:443';
config.keystone_host = '192.168.4.33';
config.keystone_port = 5000;
config.app_host = '192.168.4.180';
config.app_port = '50070';
config.username = 'idm';
config.password = 'idm';

当我启动 pep-proxy 时:

sudo node server.js

我收到下一个错误:

Starting PEP proxy in port 80. Keystone authentication ...
Error in keystone communication {"error": {"message": "The request you
have made requires authentication.", "code": 401, "title":
"Unauthorized"}}

最佳答案

首先,我不会在您的 config.account_host 中输入端口,因为那里不需要它,但这不会干扰操作。

我的猜测是您正在使用自己的 KeyRock FIWARE Identity Manager默认提供角色。

如果您检查代码,PEP 代理会发送 Domain Scoped request反对 KeyRock,如 Keystone v3 API 所示.

问题是,您用来验证 PEP 的 idm 用户可能没有任何域角色。检查它的解决方法是:

  1. 尝试域范围请求:

    curl -i \
    -H "Content-Type: application/json" \
    -d '
    { "auth": {
    "identity": {
    "methods": ["password"],
    "password": {
    "user": {
    "name": "idm",
    "domain": { "id": "default" },
    "password": "idm"
    }
    }
    },
    "scope": {
    "domain": {
    "id": "default"
    }
    }
    }
    }' \
    http://192.168.4.33:5000/v3/auth/tokens ; echo

如果您收到 401 代码,则表明您无权发出域范围 请求。

  • 检查用户在此域中是否具有任何角色。为此,您需要使用 Default Scope 获取身份验证 token 请求:

      curl -i   -H "Content-Type: application/json"   -d '
    { "auth": {
    "identity": {
    "methods": ["password"],
    "password": {
    "user": {
    "name": "idm",
    "domain": { "id": "default" },
    "password": "idm"
    }
    }
    }
    }
    }' http://192.168.4.33:5000/v3/auth/tokens ; echo
  • 这将返回解决方法所需的 X-Subject-Token

  • 使用该 token ,我们将使用我们之前选择的用户 idmdefault 域发送请求,以检查我们是否已分配任何角色那里:

    curl -i \
    -H "X-Auth-Token:<retrieved_token>" \
    -H "Content-type: application/json" \
    http://192.168.4.33:5000/v3/domains/default/users/idm/roles
  • 这个请求可能会给您一个类似以下的响应:

    {"links": {"self": "http://192.168.4.33:5000/v3/domains/default/users/idm/roles", "上一个": null, "下一个": null}, "角色": []}

  • 在这种情况下,您需要为该用户创建一个角色。要创建它,您需要为 default 域中的用户 idm 分配一个角色。为此,您需要检索要分配的角色角色ID。您可以通过发送以下请求来做到这一点:

    curl -i \
    -H "X-Auth-Token:<retrieved_token>" \
    -H "Content-type: application/json" \
    http://192.168.4.33:5000/v3/roles
  • 它将返回一个 JSON,其中包含所有可用的角色及其ids

  • 角色分配给default域中的用户idm。有 6 个可用:成员(member)、所有者、试用、基本、社区和管理员。由于 idm 是主管理员,我会选择 admin id。最后,使用admin id,我们通过执行以下操作来分配角色:

    curl -s -X PUT \
    -H "X-Auth-Token:<retrieved_token>" \
    -H "Content-type: application/json" \
    http://192.168.4.33:5000/v3/domains/default/users/idm/roles/<role_id>
  • 现在您可以重试第 1 步,如果一切正常,您应该能够启动 PEP 代理:

    sudo node server.js

    让我知道进展如何!

    关于fiware - 用于集成 IDM GE、PEP 代理和 Cosmos 大数据的 PEP 代理配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32092430/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com