1

我已经在我的机器上安装了 orion Context Broker 和 pep 代理。我的目标是 keyRock 和 AuthZforce 的全局实例来验证上下文代理。

这是我的 config.js:

var config = {};

config.pep_port = 1307;

// Set this var to undefined if you don't want the server to listen on HTTPS
config.https = {
    enabled: false,
    cert_file: 'cert/cert.crt',
    key_file: 'cert/key.key',
    port: 443
};

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


config.app_host = 'localhost';
config.app_port = '1026';

config.username = '<my fiware lab username>';
config.password = '<my fiware lab pass>';



// in seconds
config.chache_time = 300;

// if enabled PEP checks permissions with AuthZForce GE.
// only compatible with oauth2 tokens engine
config.azf = {
    enabled: false,
    host: 'auth.lab.fiware.org',
    port: 6019,
    path: '/authzforce/domains/d698df7f-ffd4-11e4-a09d-ed06f24e1e78/pdp'
};

// list of paths that will not check authentication/authorization
// example: ['/public/*', '/static/css/']
config.public_paths = [];

// options: oauth2/keystone
config.tokens_engine = 'oauth2';

config.magic_key = undefined;

module.exports = config;

当我这样做时,node server.js 我成功地得到:

Starting PEP proxy in port 1307. Keystone authentication ...
Success authenticating PEP proxy. Proxy Auth-token:  e2189bdc1a8b4aae9280b0fd5a6ae8a0

按照此安装和管理指南,我执行了以下命令:

curl --header "X-Auth-Token:e2189bdc1a8b4aae9280b0fd5a6ae8a0" http://localhost:1307

从那里我得到这个消息:

[TOKEN] Checking token with IDM...
User access-token not authorized

我在这里很茫然,不知道如何通过这三个中介访问上下文代理?

我应该向谁的主机索取令牌?

我不知道我是否在问正确的问题。所有这一切的重点是保护对上下文代理的访问。

编辑 1

设置 auth-token.sh 后,出现以下错误:

<orionError>
  <code>400</code>
  <reasonPhrase>Bad Request</reasonPhrase>
  <details>service not found</details>
</orionError>

节点 server.js 报告了这一点:

Starting PEP proxy in port 1307. Keystone authentication ...
Success authenticating PEP proxy. Proxy Auth-token:  b90604bc94134c1a81414e97a23196f3


[TOKEN] Checking token with IDM...
[ROOT] Access-token OK. Redirecting to app...

以前的命令:sh auth-token.sh <username> <pass>给了我:

X-Auth-Token for '<my email on fiware lab>': OxFTGtMM6ckBa7FQCUmwvvhj6GQYFc

然后我只是curl --header "X-Auth-Token:OxFTGtMM6ckBa7FQCUmwvvhj6GQYFc" http://localhost:1307给了我前面提到的错误。

4

2 回答 2

2

@geissler 给出的答案是正确的。关于Edit 1,这不是 PEP、Authzforce 或 KeyRock 返回的错误,而是关于 Orion Context Broker 使用的错误。

正在做

curl --header "X-Auth-Token:OxFTGtMM6ckBa7FQCUmwvvhj6GQYFc" http://localhost:1307

您没有查询任何操作,这就是您收到此错误的原因。请查看Orion 用户和程序员指南以了解如何使用 Orion Context Broker。

对于端到端测试,您始终可以通过以下方式查询 Orion 以检索版本:

curl --header "X-Auth-Token:OxFTGtMM6ckBa7FQCUmwvvhj6GQYFc" http://localhost:1307/version 

因此,如果您得到它,您将正确访问受保护的 Orion。

于 2015-08-31T10:39:48.980 回答
2

PEP 代理启动屏幕中显示的令牌不是您需要在 PEP 代理上进行身份验证的令牌。请在此处查看描述:Wilma pep proxy and keystone - valid access token not found

简单的方法如下:

下载此处提供的文件: https ://raw.githubusercontent.com/Bitergia/fiware-chanchan-docker/master/images/pep-wilma/4.3.0/auth-token.sh

将 CLIENT_ID 和 CLIENT_SECRET 替换为您从 FIWARE 实验室获得的。还将 https://idm/oauth2/token替换为https://account.lab.fiware.org/oauth2/token然后运行:

   sh auth-token.sh <user-email> <password>

该脚本将向您显示您已使用的用户帐户的身份验证令牌。您可以运行以下命令来访问 Orion Context Broker:

   curl --header "X-Auth-Token: <AUTH-TOKEN-DISPLAYED>" http://localhost:1307

您现在应该收到来自 orion 的正确响应,根据您的配置,它应该在端口 1026 上运行。还要确保您已正确配置 FIWARE Lab 中的重定向 URL。

于 2015-08-28T13:13:36.347 回答