簡體   English   中英

Fiware-如何集成Keyrock IdM,Wilma PEP代理和Orion上下文代理?

[英]Fiware - How to integrate Keyrock IdM, Wilma PEP Proxy and Orion Context Broker?

我閱讀了Keyrock和Wilma的所有文檔,並且在FIWARE學院觀看了所有視頻,但是在這種集成中我仍然沒有成功。 從幾天前開始,我一直在搜索,但是沒有成功。 我認為FIWARE文檔可能會有教程,動手實踐...

我有一個帶有Orion上下文代理的VM,一個帶有Keyrock IdM和Wilma PEP代理的容器。 我正在嘗試生成訪問令牌以授予對應用程序的訪問權限,但是我仍然沒有得到它。 此外,我想知道如何在Orion Context Broker和某些IoT設備之間安全地交換消息。 確實,像Keyrock IdM示例所示,考慮物聯網設備必須訪問屏幕並放置其憑據進行身份驗證和授權很復雜。 你什么意思?

關於Orion,取決於要保護的接口,或者是服務API(即Orion通常在端口1026運行的偵聽REST服務器),通知API或同時滿足以下兩者:

  • 關於服務API:
    • 認證和授權 :可以通過PEP實施。 以下文檔介紹了兩種PEP替代實現。 但是,請注意,PEP不能獨立運行,因為它還需要IDM和訪問控制才能運行。 我了解@Alvaro可以詳細解釋該主題(關於Wilma PEP)。 這是我所不知道的。
    • 加密 :它可以通過充當HTTPS到HTTP橋的代理(例如被實現ngnix )或通過獵戶本身使用-https CLI參數(其結合工作-key-cert )。 文檔的部分對此進行了詳細說明。
  • 關於通知API:
    • 身份驗證和授權 :自定義通知的當前實現(請參閱NGSIv2規范中的“自定義通知”部分)允許您包括可用於身份驗證的自定義HTTP標頭(例如,PEP實例保護所需的X-Auth-Token標頭)您的端點)。 請注意,當前這是以靜態方式完成的,即Orion無法與IDM / AccessControl直接交互以在到期后動態設置X-Auth-Token值,等等。但是,有可能開發出一種能夠這樣做並設置適當的標題(如果對此感興趣,我建議您選中“如何在Orion的傳出通知中添加自定義標題?” )。
    • 加密 :可以在Rush組件中實現中繼。 文檔的部分對此進行了詳細說明。

更新:從版本1.7.0開始,Orion實施本機HTTPS通知(即無需Rush)。

這里看到@albertinisg的答案,我找到了一個用於令牌請求的bash腳本 我將其更改為與本地實例一起使用,並且可以正常工作。

在FIWARE Portal上注冊我的應用程序后( 在此處了解更多信息 ),我不得不向http:// idm:8000 / oauth2 / token (idm是Keyrock的本地實例)發出POST請求。 有了這個有效的令牌,我就可以訪問Orion中的內容。

import requests, json, getpass

TOKEN_URL = "http://idm:5000/v2.0/tokens"

USER = raw_input("Username: ")
PASSWORD = getpass.getpass("Password: ")
PAYLOAD = "{\"auth\": {\"passwordCredentials\": {\"username\":\""+USER+"\", \"password\":\""+PASSWORD+"\"}}}"
HEADERS =  {'content-type': 'application/json'}
RESP = requests.post(TOKEN_URL, data=PAYLOAD, headers=HEADERS)

PEP代理(Wilma)配置(config.js):

config.app_host = 'my_orion_ip'; //change to your Orion address
config.app_port = '1026'; //change to your Orion port

config.username = 'pep_proxy_credential_obtained_at_portal';
config.password = 'password_obtained_at_portal';

通過使用該配置運行有效令牌和PEP代理(Wilma)服務器,可以控制對Orion的訪問,並向PEP代理地址發出請求。 PEP代理會將此請求重定向到IdM(Keyrock),以便IdM可以驗證用戶/設備憑據。 如果憑據有效,則用戶/設備將收到有效令牌,並且現在PEP代理可以允許訪問Orion。

對於HTTPS通信,我將Nginx服務器配置為充當反向代理(.conf文件):

server {
   listen       443;
   server_name  orion;

   ssl                  on;
   ssl_certificate      /etc/nginx/ssl/orion.crt;
   ssl_certificate_key  /etc/nginx/ssl/orion.key;
   ...
   ...
   location / {
      #root   orion:1026;   #/var/www/yourdomain.com;
       #index  index.php index.html index.htm;
       proxy_set_header        Host $host;
       proxy_set_header        X-Real-IP $remote_addr;
       proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header        X-Forwarded-Proto $scheme;

       # Fix the “It appears that your reverse proxy set up is broken" error.
       proxy_pass          http://orion:1026;
       proxy_read_timeout  90;
       proxy_redirect      http://orion:1026 https://orion;
   }
}

我做了一個有關FIWARE Orion,Wilma和Keyrock集成的簡單教程: https ://www.slideshare.net/daltoncezane/integrating-fiware-orion-keyrock-and-wilma

我希望這個答案可以幫助其他人。

以下演示逐步介紹了如何創建基於FIWARE的IoT平台以及如何使用PEP代理,Keystone和Keypass對其進行保護。

https://docs.google.com/presentation/d/18LaWZSK4h2wncPF6hNAwK5MToLvJesR3XLrzsqrsmrw/edit?usp=sharing

我希望這有幫助

謝謝

暫無
暫無

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

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