我在我的机器上安装了orion Context Broker和pep proxy。我的目标是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
在installation and administration guide之后,我执行了以下命令:
curl --header&#34; X-Auth-Token:e2189bdc1a8b4aae9280b0fd5a6ae8a0&#34; 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
给了我前面提到的错误。
答案 0 :(得分:2)
PEP代理的启动屏幕中显示的令牌不是您在PEP代理处进行身份验证所需的令牌。请在此处查看说明:Wilma pep proxy and keystone - valid access token not found。
简单方法如下:
将CLIENT_ID和CLIENT_SECRET替换为您从FIWARE Lab获得的CLIENT_ID和CLIENT_SECRET。同时将https://idm/oauth2/token替换为https://account.lab.fiware.org/oauth2/token然后运行:
sh auth-token.sh <user-email> <password>
该脚本将显示您使用的用户帐户的Auth令牌。您可以运行以下命令来访问Orion Context Broker:
curl --header "X-Auth-Token: <AUTH-TOKEN-DISPLAYED>" http://localhost:1307
您现在应该收到来自orion的正确响应,该响应应根据您的配置在端口1026上运行。 还要确保已正确配置FIWARE实验室中的重定向URL。
答案 1 :(得分:2)
@ geissler给出的答案是正确的。关于编辑1 ,这不是PEP,Authzforce或KeyRock返回的错误,是关于Orion Context Broker使用的错误。
做
curl --header "X-Auth-Token:OxFTGtMM6ckBa7FQCUmwvvhj6GQYFc" http://localhost:1307
您没有查询任何操作,这就是您收到此错误的原因。请查看Orion User and Programmers Guide以了解如何使用Orion Context Broker。
对于端到端测试,您始终可以通过执行以下操作来查询Orion以检索版本:
curl --header "X-Auth-Token:OxFTGtMM6ckBa7FQCUmwvvhj6GQYFc" http://localhost:1307/version
因此,如果你得到它,你将正确访问受保护的猎户座。