認証が WireCloud インスタンスによって使用されるのと同じ IdM サービスを使用して 管理されるサードパーティ・サービスにアクセスする必要がある場合があります。 そのような場合は、IdM サーバから取得した OAuth2 トークンを ウィジェット/オペレータからのリクエストに挿入するために、WireCloud が提供する サポートを利用できます。
WireCloud は、トークンの注入を担当するコンポーネントである WireCloud の Proxy を通して、このトークン注入のサポートを提供します。IdM から取得したトークンを 使用したい場合は、WireCloud の Proxy を使用する必要があります (たとえば、
MashupPlatform.http.makeRequestメソッドを使用することによって)。WireCloud は、ウィジェット/オペレータからの OAuth2 トークンの読み取りをサポートしていません。
注 : このドキュメントでは、簡単にするために WireCloud 0.9.1 以降で 使用可能なヘッダ名を使用していますが、以前のバージョンの WireCloud では他の名前を使用しています。詳しくは最新のスライドを見てください。
OAuth2 トークンをリクエストに挿入する方法に関するすべての設定は、WireCloud の
Proxy によって消費されるHTTP ヘッダを使用して提供されます。メイン・ヘッダは、
以下の通り FIWARE-OAuth-Token です。このヘッダは、OAuth2 トークンを挿入したい
リクエスト (値として true を設定提) に追加する必要があります。
匿名ユーザは有効な OAuth2 トークンを持っていないことを考慮してください。また、 WireCloud のカスタム・インスタンスを実行している場合は、いくつかの認証バックエンドを サポートするように設定できます。その場合、一部のユーザは IdM アカウントに 関連付けられません。次のコードを実行すると、現在ログインしているユーザに IdM トークンが関連付けられているかどうかを確認できます :
MashupPlatform.context.get('fiware_token_available');
通常、OAuth2 トークンを HTTP ヘッダに挿入することをお勧めします。これは
FIWARE-OAuth-Header-Name ヘッダを使用して実現できます。ちなみに、トークンを
OpenStack で使用されているように X-Auth-Token ヘッダに、または、OAuth 2 RFC
で規定されているように Authorization ヘッダに追加することをお勧めします。
OAuth2 トークンを Authorization ヘッダに挿入すると、WireCloud はそれに応じて
トークン・タイプのプレフィックスを追加します (例 : Bearer)。
例 :
MashupPlatform.http.makeRequest(url, { requestHeaders: { "FIWARE-OAuth-Token": "true", "FIWARE-OAuth-Header-Name": "X-Auth-Token" }, ... });
OAuth2 トークンを挿入するためのもう1つの一般的な場所は、URL の GET パラメータです。
この種の注入はFIWARE-OAuth-GET-Parameter ヘッダを使って設定されます。
例 :
MashupPlatform.http.makeRequest(url, { requestHeaders: { "FIWARE-OAuth-Token": "true", "FIWARE-OAuth-GET-Parameter": "access_token" }, ... });
これにより、現在ログインしているユーザの OAuth2 トークンを含む URL に
access_token GET パラメータが追加されます。
最後に、プロキシはリクエストのボディに OAuth2 トークンを挿入できます。
そのためには、FIWARE-OAuth-Body-Pattern ヘッダを使用して検索して
OAuth2 トークンに置き換えるパターンを指定する必要があります。
例 :
MashupPlatform.http.makeRequest(url, { method: 'POST', postBody: JSON.stringify({token: "%fiware_token%"}), requestHeaders: { "FIWARE-OAuth-Token": "true", "FIWARE-OAuth-Body-Pattern": "%fiware_token%" }, ... });
これにより、リクエストのボディに出現する %fiware_token% がすべて検索され、
それがユーザの OAuth2 トークンに置き換えられます。
WireCloud 0.7.2 以降は、現在ログインしているユーザの OAuth2 トークンを使用する
代わりに、ダッシュボードの所有者の OAuth2 トークンを使用するための実験的な
サポートを提供します。これを行うには、リクエストに FIWARE-OAuth-Source
ヘッダを追加して workspaceowner 値を使用します。このヘッダは、以前に提示され、
ヘッダのいずれかと組み合わせて使用することができます :
FIWARE-OAuth-GET-Parameter, FIWARE-OAuth-Header-Name または
FIWARE-OAuth-Body-Pattern
例 :
MashupPlatform.http.makeRequest(url, { requestHeaders: { "FIWARE-OAuth-Token": "true", "FIWARE-OAuth-Header-Name": "X-Auth-Token", "FIWARE-OAuth-Source": "workspaceowner" }, ... });
| 目次 | t |
|---|---|
| スライド一覧 | ESC |
| フルスクリーン | e |
| 発表者ビュー | p |
| ソースファイル | s |
| スライド番号 | n |
| 画面ブランキングの切り替え | b |
| スライド・コンテキストの表示/非表示 | c |
| ノート | 2 |
| ヘルプ | h |