私は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
次のウィキで見ることができるようにトークンを作成して取得します:トークンを取得します。
あなたがここで見ることができるように:トークン。
postmanリクエスト(ポートを指定せずに)をリクエストすると、PEPプロキシにエラーが表示されるため、続行できません。
このconfig.jsを使用する:config.js。
このエラーが発生しました:エラー。
ERROR: Server - Caught exception: SyntaxError: Unexpected token E
誰かが提案を持っていて、誰かがhttpsサポートを展開する方法を知っていますか?
全てに感謝...
あなたが直面している問題は、「Auth-tokenがリクエストヘッダーに見つかりません」です。これは、リクエストのヘッダーで認証トークンを渡していないことを意味します。
問題を解決するには、次の方法で有効なトークンを取得する必要があります。
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の統合に関する詳細については、このチュートリアルを参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加