Fiware - как подключить PEP-прокси к Orion и настроить оба с помощью HTTPS?

Я работаю с Orion и пытаюсь защитить будущие приложения, используя прокси PEP и Keyrock, но я не могу найти способ объединить эти 3 GE. Все мои базовые файлы находятся в этом хранилище, хотя у меня запущены Orion, Keyrock и Cygnus, я не могу отправлять запросы, используя прокси PEP.

Это мой файл docker-compose.yml:

version: "2"
networks:
  fiware:
    driver: bridge
services:
# Base de datos Orion
  mongodb:
    image: mongo:3.4.7
    hostname: mongodb
    container_name: mongodb
    expose:
      - "27017"
    ports:
      - "27018:27017"
    command: --smallfiles
    networks:
      - fiware
# GE encargado de la publicación y suscripción
  orion:
    image: fiware/orion:latest
    hostname: orion
    container_name: orion
    links: 
      - mongodb
    expose:
      - "1026"
    ports:
      - "1026:1026"
    volumes:
      - "./data/db/mongo:/data/db:rw" 
    command: -dbhost mongodb
    networks:
      - fiware
# GE encargada de la persistencia de datos
  cygnus:
    image: fiware/cygnus-ngsi:latest
    hostname: cygnus
    container_name: cygnus
    volumes:
      - "./config/cygnus/agent.conf:/opt/apache-flume/conf/agent.conf:rw"
      - "./config/cygnus/grouping_rules.conf:/opt/apache-flume/conf/grouping_rules.conf:rw"
    links:
      - mysql-cygnus
    expose:
      - "5050"
      - "8081"
    ports:
      - "5050:5050"
      - "8081:8081"
    environment:
      - CYGNUS_MYSQL_HOST=mysql-cygnus
      - CYGNUS_MYSQL_PORT=3306
      - CYGNUS_MYSQL_USER=root
      - CYGNUS_MYSQL_PASS=fiware
      - CYGNUS_LOG_LEVEL=INFO
    networks:
      - fiware
# Base de datos para historicos
  mysql-cygnus:
    image: mysql
    hostname: mysql-cygnus
    container_name: mysql-cygnus 
    expose:
      - "3306"
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=fiware
    volumes:
      - "./data/db/mysql:/var/lib/mysql:rw"
    networks:
      - fiware
# GE de control de acceso 
  authzforce:
     image: fiware/authzforce-ce-server:release-5.4.1
     hostname: authzforce
     container_name: authzforce
     expose:
         - "8080" 
     ports: 
         - "8080:8080"
# GE encargado de la administración de seguridad
  keyrock:
    image: fiware/idm:latest
    hostname: keyrock
    container_name: keyrock
    volumes:
        - "./config/idm/keystone.db:/keystone/keystone.db:rw"
        - "./config/idm/local_settings.py:/horizon/openstack_dashboard/local/local_settings.py:rw"
        - "./config/idm/keystone.conf:/keystone/etc/keystone.conf:rw"
    links:
        - orion
    expose:  
        - "5000"
        - "8000"
    ports:
        - "5000:5000"
        - "8000:8000"
    networks:
        - fiware
# GE encargado del redireccionamiento
  pepwilma:
    image: ging/fiware-pep-proxy
    hostname: pepwilma
    container_name: pepwilma
    volumes:
        - "./config/pepproxy/config.js:/opt/fiware-pep-proxy/config.js:rw"
    links:
        - keyrock
        - orion
        - authzforce
    volumes_from:
        - keyrock
    expose:
        - "80"
    ports:
        - "80:80"
    networks:
- fiware

Создание и получение токена, как вы можете увидеть в следующей вики: получить токен.

Как вы можете видеть здесь: токен.

Я не могу продолжить, потому что PEP-прокси показывает ошибку, когда я делаю запрос к: почтальону (без указания порта).

используя этот config.js: config.js.

получил эту ошибку: ошибка.

ERROR: Server - Caught exception: SyntaxError: Unexpected token E

у кого-то есть предложения, а кто-то знает, как я могу развернуть поддержку https?

Спасибо за все...

2 ответа

Решение

Проблема, с которой вы сталкиваетесь, такова: "Auth-токен не найден в заголовке запроса". Это означает, что вы не передаете авторизационный токен в заголовках вашего запроса.

Чтобы решить вашу проблему, вам нужно получить действительный токен следующим образом:

POST to "http://idm_ip:8000/oauth2/token"  
Payload: grant_type=password&username=YOUR_USERNAME&password=YOUR_PASSWORD&cli ent_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET
Headers: 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Basic AUTH_HEADER'

Измените idm_ip и все ваши YOUR_... на ваши правильные значения. AUTH_HEADER должен быть изменен на Base64 кодирование этой информации: "client_id:client_secret" - что-то вроде base64(client_id + “:” + client_secret),

С полученным токеном вы можете выполнить запрос GET/POST, сообщив заголовкам следующее:

Headers: 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': 'your received IdM token' 

В этом руководстве вы найдете больше информации об интеграции Orion, Keyrock и Wilma.

Попробуйте исправить config.js в этой строке: config.account_host = ' http://localhost:8000/' в 'localhost:8000'

Другие вопросы по тегам