Fiware-如何将PEP代理连接到Orion并使用HTTPS配置两者?
我正在与猎户座合作,我尝试使用PEP代理和Keyrock来保护未来的应用程序,但我找不到一种方法将这3个应用程序结合起来。我所有的基本文件都在,虽然我运行Orion、Keyrock和Cygnus,但我不能使用PEP代理发送请求 这是我的docker-compose.yml文件:Fiware-如何将PEP代理连接到Orion并使用HTTPS配置两者?,fiware,fiware-orion,fiware-wilma,Fiware,Fiware Orion,Fiware Wilma,我正在与猎户座合作,我尝试使用PEP代理和Keyrock来保护未来的应用程序,但我找不到一种方法将这3个应用程序结合起来。我所有的基本文件都在,虽然我运行Orion、Keyrock和Cygnus,但我不能使用PEP代理发送请求 这是我的docker-compose.yml文件: version: "2" networks: fiware: driver: bridge services: # Base de datos Orion mongodb: image: mong
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
创建和获取令牌,如您在下一个wiki中所见:
正如您在这里看到的:
我无法继续,因为当我向(未指定端口)发出请求时,PEP代理显示错误
使用此config.js:
获取此错误:
有人提出建议,有人知道如何部署https支持
谢谢大家……您面临的问题是:“在请求头中找不到身份验证令牌”。这意味着您没有在请求的头中传递身份验证令牌 要解决您的问题,您需要通过以下方式获取有效令牌:
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_头必须更改为此信息的Base64编码:“客户机id:client_secret”-类似于Base64(客户机id+):“+client_secret)
使用收到的令牌,您可以执行GET/POST请求,通知标题如下:
Headers: 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': 'your received IdM token'
您可以在这里找到更多信息。您的主要疑问与PEP设置有关,对吗?正如您在这里看到的:我已经得到了令牌,错误仍然存在,我多次遵循该教程,在最后一步中我得到了错误。你还有其他建议吗?道尔顿,我有个错误:
pepwilma | 2018-03-27 12:51:15.556-信息:Root-访问令牌OK。正在重定向到应用程序。。。pepwilma |拒绝通过github消息设置不安全的标题“接受编码”
,似乎您已修复错误。。。您得到的域
错误来自authzforce
,因为您没有创建一些访问策略。。。如果您不需要使用authzforce
只需在PEPconfig.js
文件中设置enabled:false
。我希望答案和评论对您有所帮助。是的,道尔顿,无论出于何种原因,当docker compose文件中存在authzforce容器时,禁用它不是一个选项,那么我只会显示该部分。
Headers: 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-Auth-Token': 'your received IdM token'