@albertinisg hereの回答を見て、トークンリクエスト用のbashスクリプトを見つけました。ローカル インスタンスで使用するように変更したところ、機能しました。
アプリケーションを FIWARE Portal (詳細はこちら) に登録した後、 http://idm:8000/oauth2/token (idm は Keyrock のローカル インスタンス) にPOST リクエストを送信する必要がありました。この有効なトークンを使用して、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) サーバーを使用すると、PEP Proxy アドレスへのリクエストを行う Orion へのアクセスを制御できます。IdM がユーザー/デバイスの資格情報を検証できるように、PEP プロキシはこの要求を IdM (Keyrock) にリダイレクトします。認証情報が有効な場合、ユーザー/デバイスは有効なトークンを受け取り、PEP プロキシは Orion へのアクセスを許可できるようになります。
HTTPS 通信用に、リバース プロキシ (.conf ファイル) のように動作するように Nginx サーバーを構成しました。
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/integrating-fiware-orion-keyrock-and-wilma
この答えが他の誰かに役立つことを願っています。