首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于IDM GE、PEP代理和Cosmos大数据集成的PEP代理配置文件

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

Stack Overflow用户
提问于 2015-08-19 10:04:44
回答 1查看 473关注 0票数 3

我有一个关于PEP代理文件的问题。我的keystone服务运行在192.168.4.33:5000。我的地平线服务在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对标识管理器提出的每一个请求都是工作的。

但是有了这个配置:

代码语言:javascript
复制
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代理时:

代码语言:javascript
复制
sudo node server.js

我得到下一个错误:

代码语言:javascript
复制
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"}}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-19 12:20:40

首先,我不会在您的config.account_host上键入端口,因为它不是必需的,但这不会干扰操作。

我猜您使用的是您自己的KeyRock身份管理器和默认的角色设置。

如果您检查代码,则PEP代理将按照域作用域请求中的KeyRock发送一个针对KeyRock的Keystone v3 API

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

  1. 尝试Domain Scoped请求: curl -i \ -H“内容-类型: application/json”\ -d‘{ "auth":{“标识”:{“方法”:“密码”,“密码”:{“用户”:{“名称”:"idm",“域”:{ "id":“默认”}“密码”:"idm“} },”作用域“:{”域“:{ "id":”默认“}‘\ http://192.168.4.33:5000/v3/auth/tokens;回波

如果您获得了401代码,则没有授权您发出Domain Scoped请求。

  1. 检查用户在此域中是否有任何角色。为此,您需要使用默认范围请求获得一个Auth令牌: curl -i -H“内容-类型: application/json”-d‘{ "auth":{“标识”:{“-H”:“密码”,“密码”:{“用户”:{“名称”:"idm",“域”:{ "id":“默认”},“密码”:"idm“}‘http://192.168.4.33:5000/v3/auth/tokens;回波

这将返回解决方案所需的X-Subject-Token

  1. 有了这个标记,我们将使用我们之前选择的用户idmdefault域发送一个请求,以检查我们是否在那里分配了任何角色: curl -i \ -H“X令牌:<检索的_令牌>”\ -H“内容-类型: 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", "previous": null, "next": null}, "roles": []}

  1. 在这种情况下,您需要为该用户创建一个角色。要创建它,您需要将role放进default域中的用户idm。为此,您需要检索要分配的role idrole。您可以通过发送以下请求来做到这一点: curl -i \ -H“X令牌:<检索的_令牌>”\ -H“内容-类型: application/json”\ http://192.168.4.33:5000/v3/roles

它将返回一个带有所有可用roles及其ids的JSON。

  1. role分配给default域中的用户idm。有6个可用的:会员,业主,试用,基本,社区和行政。由于idm是主要管理员,所以我会选择admin id。最后,对于admin id,我们通过执行以下操作来分配角色: curl -s -X PUT \ -H“X令牌:<检索的_令牌>”\ -H“内容-类型: application/json”\ http://192.168.4.33:5000/v3/domains/default/users/idm/roles/

现在您可以再次尝试步骤1,如果一切正常,您应该能够启动PEP代理:

代码语言:javascript
复制
sudo node server.js

告诉我是怎么回事!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32092430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档