3

FINISH アクセラレータの一部として、FIWARE KeyRock と Wirecloud を使用しています。現在、Fiware labs グローバル インスタンスを使用して調査しています。

ユーザーがメンバーである組織に属するデータのみを表示できるように、システムを制限したいと考えています。

次のフローは論理的に見えますが、間違っている場合は修正してください。

  1. ユーザーが Wirecloud にログインすると、KeyRock ログイン画面に誘導されます。
  2. Wirecloud ウィジェットは、Wirecloud 環境からアクセス トークンを取得します。アクセス トークンは、ユーザーがログインしたときに作成されました。
  3. Wirecloud ウィジェットは、ユーザーがメンバーである組織と役割を検索します。これに基づいて、クエリに組織名を追加します。
  4. Wirecloud ウィジェットは、作成したばかりのクエリを使用して Web サービス (Orion またはその他) にクエリを実行します。
  5. Wirecloud ウィジェットと Web サービスの間に Wilma PEP プロキシを配置して、ユーザーがクエリ内の組織のメンバーであることを検証します。

問題: https://account.lab.fiware.org/user?access_token=XXXXXXXXXXXX呼び出し を使用して、KeyRock からユーザー情報を照会できます。ただし、KeyRock Web インターフェイスによると、ユーザーがメンバーである組織に関する情報は含まれていません。組織要素は空の配列です。json 応答で多数の役割を取得しますが、KeyRock の [組織のメンバーの管理] 画面からユーザーに割り当てる「メンバー」の役割はありません。

掘り下げた結果、Fiware ラボで実行されている Keystone インスタンスに情報が含まれていることが明らかになりました (Keystone プロジェクト = KeyRock 組織と仮定)。ただし、KeyRock が提供するアクセス トークンは、Keystone API では有効ではありません。私たちが使用した API には、ここからアクセスできました: http://cloud.lab.fiware.org:4730/v3/ Keystone API から新しいアクセス トークンを取得することは、私たちが望んでいるものではありません。これには、再度ログインして組織のメンバーシップを取得するために何らかのプロキシが必要になります。それはむしろ、アクセストークンを渡すという点を無効にします.

これは、fiware labs インスタンスの KeyRock API のバグのようです。または、ここで何か不足していますか?それとも、自分のサーバーに keyrock をインストールすれば、この問題は魔法のように解決するのでしょうか?

助けてくれてありがとう、ロビン

4

1 に答える 1

1

ここで説明されている手順に従う必要がありますが、特定の組織を使用しています。おそらく、「承認」のステップを見逃している可能性があります

于 2016-04-18T11:04:40.877 に答える