簡體   English   中英

PEP代理配置文件,用於集成IDM GE,PEP代理和Cosmos大數據

[英]PEP proxy config file for integration of IDM GE, PEP proxy and Cosmos big data

我有一個關於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”密碼,我在Identity Manager上通​​過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代理會發送針對KeyRock的Domain Scoped請求 ,如Keystone v3 API中所示

所以問題是,您用來驗證PEP的idm用戶可能沒有任何域角色。 檢查它的解決方法是:

  1. 嘗試Domain Scoped請求:

     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代碼,則無權進行Domain Scoped請求。

  1. 檢查用戶是否在此域中具有任何角色。 為此,您需要使用默認范圍請求獲取Auth令牌:

      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

  1. 使用該令牌,我們將使用我們之前選擇的用戶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", "previous": null, "next": null}, "roles": []}

  1. 在這種情況下,您需要為該用戶創建一個角色。 要創建它,您需要在default域中為用戶idm分配role 為此,您需要檢索要分配的rolerole id 您可以通過發送以下請求來執行此操作:

     curl -i \\ -H "X-Auth-Token:<retrieved_token>" \\ -H "Content-type: 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-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

讓我知道事情的后續!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM