認証が 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 |