2016-12-06 5 views
1

Я прочитал всю документацию Keyrock и Wilma, и я просмотрел все видео в Академии FIWARE, но до сих пор не добился успеха в этой интеграции. Я ищу это с нескольких дней назад, но безуспешно. Я думаю, что документация FIWARE может иметь учебные пособия, руки ...Fiware - Как интегрировать Keyrock IdM, Wilma PEP Proxy и Орион Контекстный брокер?

У меня есть виртуальная машина с Контекстным брокером Ориона и контейнер с Keyrock IdM и прокси-сервером Wilma PEP. Я пытаюсь создать токен доступа для предоставления доступа для приложения, но я все еще не получил его. Кроме того, я хотел бы знать, как я могу безопасно обмениваться сообщениями между Контекстным брокером Orion и некоторыми устройствами IoT. Действительно, сложно подумать о том, что устройства IoT должны получить доступ к экрану и поставить свои учетные данные для аутентификации и авторизации, как показывают примеры Keyrock IdM. Что вы делаете?

+0

Я рекомендую вам следовать указаниям, приведенным в Уроке 3 Keyrock курсов (https://edu.fiware.org/course/view. php? id = 79), чтобы знать, как создавать токены OAuth2. Подробную документацию можно найти здесь (http://fiware-idm.readthedocs.io/en/latest/oauth2.html). Что касается вопросов с Орион, мои коллеги из группы IoT помогут вам. –

+0

Чтение сообщения вопроса, не знаю, какой конкретный вопрос для Ориона ... @ Далтон, не могли бы вы немного разобраться, пожалуйста? Спасибо! – fgalan

+0

Уважаемый @Alvaro, я уже смотрел все видео в Академии Fiware, включая урок 3 (я смотрел его два раза). У меня возникли проблемы с созданием токена доступа в моем локальном экземпляре IdM. Я уже создал приложение на моем портале IdM, что дало мне идентификатор клиента и секретный идентификатор. Но у меня возникли сомнения в том, как запросить действительный токен доступа. Теперь, после поиска немного больше, я узнал и получил токен доступа с POST по адресу http: // idm: 8000/oauth2/token. Я протестировал его с запросом информации о пользователе с помощью http: // idm: 8000/user? Access_token = «mytoken», и он сработал. – Dalton

ответ

1

Увидев ответ @albertinisg here, я нашел bash script для запроса токена. Я изменил его для использования с моими локальными экземплярами, и это сработало.

После регистрации заявки на портале FIWARE (more information here) мне пришлось сделать запрос POST на 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 Конфигурация прокси (Вильма) (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 (Вильма) работает с этой конфигурацией, можно управлять доступом чтобы 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, Вилма и Keyrock: https://www.slideshare.net/daltoncezane/integrating-fiware-orion-keyrock-and-wilma

Надеюсь, этот ответ поможет кому-то другому.

1

Что касается Orion, это зависит от интерфейса крепиться, либо служба API (т.е. слушающего сервер REST, что Orion работает обычно на порту 1026), уведомлений API или как:

  • Что касается сервиса API :
    • аутентификации & авторизации: он может быть реализован с помощью ППК. Следующие documentation представляет две альтернативы PEP . Однако обратите внимание, что PEP не работает автономно, так как также нуждается в IDM и Access Control для работы. Я понимаю, что @Alvaro может подробно объяснить эту тему (относительно Wilme PEP). Я знаю, что это .
    • Шифрование: он может быть реализован посредством прокси-сервера, действующей в качестве HTTPS-к-HTTP моста (например, ngnix) или самой Orion с помощью -https CLI параметр (который работает в сочетании с -key и -cert). Это section of the documentation подробно описывает это.
  • Что касается уведомления API:
    • аутентификации & авторизации: текущая реализация пользовательских уведомлений (см «пользовательских уведомлений» раздел в NGSIv2 спецификации) позволяет включать пользовательские HTTP-заголовки, которые мог (например, заголовок X-Auth-Token необходимо экземпляром PEP, защищающим вашу конечную точку). Обратите внимание: это делается в статическом режиме, то есть Orion не может взаимодействовать непосредственно с IDM/AccessControl для установки значения динамического значения X-Auth-Token после истечения срока действия и т. Д. Однако можно было бы разработать процесс , способный сделайте это и установите правильный заголовок (если вас интересует , в этом я бы рекомендовал проверить "How to add a custom header in outgoing notifications with Orion?" сообщение).
    • Шифрование: его можно реализовать ретрансляцией в компоненте Rush. Это section of the documentation уточняет это.

ОБНОВЛЕНИЕ: так Verion 1.7.0, Орион реализует родные уведомления HTTPS (то есть без необходимости Rush).

+0

Спасибо за ответ @fgalan. Что касается первой части (API службы), я уже прочитал документацию ([соображения безопасности] (http://fiware-orion.readthedocs.io/en/master/user/security/index.html), как объяснено в предыдущий комментарий У меня есть IdM (Keyrock) и PEP Proxy (Wilma), работающие в контейнере докеров (я думаю, что Access Control - AuthZForce - сейчас не требуется). Мое сомнение в практическом аспекте, потому что у нас нет примеров эта интеграция («руководство для рук» было бы очень полезно) .Кроме того, в документации не ясно, как использовать -https (без примеров). – Dalton

+0

ссылка для «httpsPrepare.sh» на странице [странице параметров командной строки] (http://fiware-orion.readthedocs.io/en/master/admin/cli/index.html#command-line-options) больше не действует. Это затрудняет настройку среды. О второй части , Я задам отдельный вопрос, как вы мне предложили. – Dalton

+0

Кажется, что ссылка на сценарий нарушен в документации. Мы исправим документацию, но, тем временем, скрипт можно найти здесь: https://github.com/telefonicaid/fiware-orion/blob/master/test/functionalTest/httpsPrepare.sh – fgalan

Смежные вопросы