-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Global Discovery of Hyperties per IDP Identifier #11
Comments
Hello Paulo, this use case has not really been discussed so far. Our perspective on user identifiers was so far that "IdP user identifiers" are used independently from the reTHINK architecture. E.g. "signing up with Facebook on reTHINK service X" (as "login credentials" so to speak), but not using this as a way to address/contact other users. This has been described in Deliverable D4.1 (e.g. Section 4.1.6), in the Umbrella Scenario in Aveiro (DT_Methodology alignment0.2.pptx), the Registry discussion in Paris two weeks ago (WP4-registries.pdf) and also in the ICIN paper (Section V). Also, see [https://github.com/reTHINK-project/architecture/issues/71](WP2 issue #71) Using an identifier issued by an IdP instead of the GUID would cause the following problem - or at least raise some questions: My proposal would be to NOT use an IdP-id to initiate a connection between reTHINK users/devices, but use the GUID or UserID instead at all times. That's what the whole registry infrastructure was designed for. Anyhow: If you want to "resolve" a IdP-id, you (as the user) could publish this information (i.e. "IdP-id -> GUID") in the discovery service I guess. Then, a user can discover your GUID and connect to you in the originally planned fashion. |
First of all, what is the actual need? Except for a self-care need making a list of all hyperties deployed on behalf of a single identity can be seen as a a privacy issue to me... Second, as Sebastian wrote, the basic idea of registry services is to be domain-independent (both from CSP and IDP domains). Discovery service should provide additional search features. |
The privacy issues Jean Michel mentioned are of course another important thing to take into account. |
I agree that the proper place to address this issue would be the Discovery service. Even though not much is known about it, the need @pchainho expresses seems compatible with what I believe will be the services offered by the Discovery Service. So far, we have agreed that the role of the Global Registry is to provide a mapping between GUID -> UserIDs. These UserIDs map to the CSPs' Domain Registries. Can we derive the Domain Registry from the User Identifier for an IdP? I guess not as these are transversal to the CSPs! If we ignore the privacy issues pointed out by @jmcrom, we could come up with a technical solution using the Global Registry. We could add another mapping, userID -> GUID, to the Global Registry.
Overall, like @sgoendoer, I believe that the best solution for this problem is to use the Discovery Service. If this need is just to provide a stop gap solution while the Discovery Service is unavailable, perhaps we can come up with a better solution, or just wait. |
I was discussing this issue with @Ricardo-Chaves and @nuno-santos and they came up with another proposal for securing the introduction of the new mapping into the DHT. The idea would still be to introduce a new mapping into the DHT: userID -> GUID |
Obviously, we could add a mapping of a (hashed) UserID to a GUID into the DHT. As this mapping rather seldomly changes, this probably wouldnt put too much additional load on the service. This would mean that we would have two different data objects in the global registry. The one we have right now (GUID -> UserID) and (possibly multiple versions of) the reverse one (UserID -> GUID). Regarding the "proof of authenticity": The dataset "GUID -> UserID" is self-signed, the lookup key ( == GUID) is bound to the key and hence cannot be changed. If we add another dataset "UserID -> GUID", we can obviously sign this new dataset with the same key. Anyhow, anyone could just create those datasets with a valid signature. E.g.: Bob creates a (unauthorized) version for Alice: "AliceUserId -> BobGUID". As Alice's UserID is hashed and used as the lookup key in the DHT, a "valid" version created by Alice would be overwritten by the faked version of Bob. From then on, Alice's UserID would point to Bob's GUID data record, and hence his key is linked there, Bob would also be able to create a valid Signature for the faked mapping. |
@sgoendoer We want to make sure that no one is able to steal our "traffic". On the other hand, if we only verify that someone owns the UserID, one could forward searches for that UserID to some else's GUID. Perhaps the best solution would be to verify that:
|
The solution I proposed in the previous post does not work as the IdP would only hold the assertion for a few minutes. |
How can I use a User Identifier from an IDP (eg Google email) in order to discover associated Hyperty Instances?
The text was updated successfully, but these errors were encountered: