FIWare-如何集成KeyRock IDM,Wilma Pep代理和Orion Context Broker



我阅读了KeyRock和Wilma的所有文档,我观看了Fiware Academy中的所有视频,但我仍然在此集成中没有成功。从几天前开始,我正在寻找这个,但没有成功。我认为Fiware文档可以包含教程,可以使用...

我有一个带有Orion上下文经纪的VM,还有一个带有KeyRock IDM和Wilma Pep代理的容器。我正在尝试生成一个访问令牌以授予应用程序的访问权限,但我仍然没有得到它。此外,我想知道如何在Orion上下文经纪和某些IoT设备之间安全地交换消息。确实,考虑必须访问屏幕的IoT设备并将其凭据进行身份验证并得到授权,这是复杂的。你有什么人?

在这里查看@albertinisg的答案,我找到了一个用于令牌请求的bash脚本。我将其更改为与本地实例一起使用。

在FIWARE PORTAL上注册我的应用程序(在此处提供更多信息)后,我必须向http://idm:8000/oauth2/token提出发布请求(IDM是我的本地实例KeyRock)。有了这个有效的令牌,我可以访问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 Proxy(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/daltoncezane/Integrating-fiware-fiware-orion-keyrock-keyrock-and-wilma 进行了简单的教程。

我希望这个答案可以帮助别人。

关于Orion,它取决于要确保的接口,要么服务API(即Orion通常在端口1026上运行的侦听REST服务器),Notification API或两者兼而有之:ul>

  • 关于服务API:
    • 身份验证&授权:可以通过PEP实现。以下文档介绍了两个PEP替代方案实施。但是,请注意,Pep不可独立地工作,还需要IDM和访问控制才能工作。我了解@alvaro可以详细解释此主题(关于Wilma Pep)。它已经出来了我的知识。
    • 加密:可以通过代理人用作https-to-http来实现。使用-https CLI桥梁(例如NGNIX)或Orion本身参数(与-key-cert结合使用)。这文档的部分详细说明。
  • 关于通知API:
    • 身份验证&授权:当前实现自定义通知(请参阅NGSIV2规范中的"自定义通知"部分)允许您包括自定义HTTP标头可以用于身份验证(例如,X-Auth-Token所需的标题通过PEP实例保护您的端点)。注意目前以静态方式完成,即Orion无法直接与IDM/AccessControl互动以设置X-Auth-Token到期后的动态价值等。但是,可以开发一个流程能够执行此操作并设置适当的标题(如果您有兴趣在此中,我建议您检查"如何在Orion传出通知中添加自定义标头?"邮政)。
    • 加密:可以在Rush组件中实现中继。这文档的部分详细说明。
  • 更新:自Verion 1.7.0以来,Orion实现了本机HTTPS通知(即无需匆忙)。

    以下演示文稿逐步向您展示如何创建基于FIWare的IoT平台并使用PEP代理,Keystone和Keypass保护它。

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

    我希望这会有所帮助

    谢谢

    最新更新