Als Teil der FINISH-Beschleuniger verwenden wir FIWARE KeyRock und Wirecloud. Momentan verwenden wir die globale Instanz von Fiware Labs zur Untersuchung.Fiware KeyRock API Fehler: Mitgliedschaft in Organisationen nicht zurückgegeben
Wir möchten unser System so einschränken, dass Benutzer nur Daten anzeigen können, die zu den Organisationen gehören, denen sie angehören.
Die folgende Fluss scheint logisch, aber korrigiert mich wenn ich falsch bin:
- Ein Benutzer meldet sich Wirecloud und wird durch einen KeyRock Login-Bildschirm gerichtet.
- Ein Wirecloud-Widget erhält ein Zugriffstoken aus der Wirecloud-Umgebung. Das Zugriffstoken wurde erstellt, als der Benutzer sich anmeldete.
- Das Wirecloud-Widget sucht nach den Organisationen und Rollen, denen ein Benutzer angehört. Auf dieser Grundlage fügt es seiner Abfrage Organisationsnamen hinzu.
- Das Wirecloud-Widget fragt einen Webservice (Orion oder anders) mit der soeben erstellten Abfrage ab.
- Wir setzen den Wilma-PEP-Proxy zwischen das Wirecloud-Widget und den Webservice, um zu validieren, dass der Benutzer ein Mitglied der Organisationen in der Abfrage ist.
PROBLEM: Wir Benutzerinformationen aus KeyRock mit dem https://account.lab.fiware.org/user?access_token=XXXXXXXXXXX Anruf abfragen. Aber das enthält keine Informationen über die Organisationen, denen der Benutzer gemäß der KeyRock-Weboberfläche angehört. Das Organizations-Element ist ein leeres Array. Wir erhalten eine Reihe von Rollen in der JSON-Antwort, aber keine von ihnen ist die Rolle "Mitglieder", die Sie den Benutzern über den Bildschirm "Verwalten Ihrer Organisationsmitglieder" in KeyRock zuweisen.
Einige Ausgrabungen ergaben, dass die Keystone-Instanz, die auf Fiware-Labs läuft, die Informationen enthält (unter der Annahme, dass ein Keystone-Projekt = KeyRock-Organisation ist). Das von KeyRock bereitgestellte Zugriffstoken ist jedoch in der Keystone-API nicht gültig. Die von uns verwendete API war hier zugänglich: http://cloud.lab.fiware.org:4730/v3/ Das Erlangen eines neuen Zugriffstokens von der Keystone-API ist nicht das, was wir wollen, da dies ein anderes Zugriffstoken als Wirecloud wäre, das eine Art von Proxy für die erneute Anmeldung erfordern würde Abrufen der Organisationsmitgliedschaft Das vereitelt eher den Punkt der Übergabe eines Zugriffstokens.
Dies scheint ein Fehler in der KeyRock-API in der fware labs-Instanz zu sein. Oder fehle ich hier etwas? Oder wird dieses Problem magisch verschwinden, wenn wir keyrock auf unserem eigenen Server installieren?
Vielen Dank für jede Hilfe, Robin
ich einen Link hier: [link] (https://forge.fiware.org/plugins/mediawiki/wiki/fiware/index.php/Application_Mashup_-_Wirecloud_-_User_and_Programmer_Guide# getTenants) und ein Wirecloud-Beispiel-Widget hier: [link] (https://wirecloud.conwet.etsiinf.upm.es/slides/3.2.2_Using%20Object%20Storage.html#slide28), die das Abrufen von Tenants ermöglichen (= Keystone-Projekte) = KeyRock-Organisationen) aus einem wirecloud-Widget. Ich habe das Widget in mein Mashup hochgeladen, und obwohl ich keinen Objektspeicher eingerichtet habe (was dazu führt, dass sich das Widget beschweren kann), kann ich sehen, in welcher Organisation mein Benutzer Mitglied ist. – Robin
Obwohl der obige Kommentar es mir erlaubt, die KeyRock-API direkt von Wirecloud zu umgehen, indem Sie stattdessen die Keystone-API verwenden, stellt sich die Frage, ob wir die KeyRock-API überhaupt verwenden sollten. – Robin
hast du die Lösung gefunden? Ich bekomme auch eine leere Liste von Organisationen. Sogar der Eigentümer der Organisation erhält eine leere Liste. – Dalton