Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] [IdAS] registered Contexts


I wasn't thinking of something so fine-grained. My thought was to make a ContextRef either visible (via the service) or not. In other words, there is a set of ContextRefs that can be viewed by anyone who has access to the service. These are explicitly identified by calling IdASRegistry.registerContext. Only these ContextRefs will be returned when a consumer calls IdASRegistry.getContexts. (We could call it getRegisteredContexts, if that helps.)

(I want to defer the discussion of ContextFactory.getContexts for now. The set of registered Contexts may or may not be kept in a list that is separate from the factories' lists.)


Scenario #1: User wants to create/open a "private" Context, for which he has a URI. (1) Gets a list of potential factories for this Context (IdASRegistry.getContextFactories(URI)). (2) Chooses one and creates a Context object (factory.createContext) then opens it (context.open). (3) If another user of the service calls IdASRegistry.getContexts, this URI does not appear in the list.


Scenario #2: User wants to publish a Context, for which he has a URI.
(1) Calls IdASRegistry.registerContext(URI) -- registry will test the URI against the existing factories (factory.canCreate), and will throw an exception if there is no factory that claims to handle this URI. (Note that the user does not need to create or open this ContextRef to register it.) (2) If another user of the service calls IdASRegistry.getContexts, this URI will appear in the list.


Considering the case of exposing a particular ContextRef to a certain set of people (e.g., family and friends), I have two options. First, I can just send them the ContextRef through some out-of-band means (in the same way that I them tell how to get to my blog). Second, I can set up an IdAS service that is restricted to those users, and publish the ContextRef there. (Then I have to tell them about the IdAS service....)

This two-state policy (registered or not) is simple, and it avoids the need for a complex policy about who can see what. If we find that we need such a policy to govern ContextFactory.getContexts, then I'll recant and say the IdASRegistry.getContexts simply aggregates the getContexts results from all registered factories.

I realize that this does not address the desire to enumerate (a) opened contexts, and (b) instantiated contexts. I personally don't think that's necessary for the registry service. I've pushed this issue to the ContextFactory -- I'm also concerned about privacy there, but I'll let someone else justify why we need those enumerations, and then we can figure out how to address the privacy issues.


...Greg



Jim Sermersheim wrote:
You're right of course, I skipped tracks there. I need to regroup my thoughts. So we want a way to enumerate contextRefs. Some issues are: - Do we want to distinguish between, (a) opened contexts, (b) instantiated contexts, and (c) potential contexts? - Of the contextRef's available to be returned (possibly considering each of the three types above), are some only viewable by certain identities? I don't know how IdAS -- other than config/policy one would restrict access to (b) or (c) to certain parties. I can see how one could do it with identities for (a). <this is likely something better suited for phone or f2f> Because I don't understand the deployment scenarios, I still don't really understand the need to restrict contextRef's at the IdAS level. I guess your scenario is where there is a public IdAS service (I guess there would be a protocol fronting this) where anyone can enumerate all contextRefs (say a and b types), and I happened to do this find one that contained the text "drug dealers for bgyrd@xxxxxxxx". From that, I can guess that you have a list of drug dealers. Thus, (assuming this public IdAS service fronted by some protocol) you'd like to make your contextRef's private. I guess this also assumes some kind of session knowledge or something that is used to distinguish between you and me as we're interacting with this service. If this is the scenario you're thinking of, it may be one of those things we need more tangible use cases/requirements around before defining. For example, I may want to make some of my contextRefs available to family members, some others available to friends, some only to me, and others publically available. Jim

>>> Greg Byrd <gbyrd@xxxxxxxx> 8/15/06 3:46 PM >>>
Jim Sermersheim wrote:
>  <snip>
> I can't see where it's ever safe to return a context which has been
> open as a different person. That's like logging into one's workstation
> and allowing someone else to take over. I think the sharing of open
> contexts between trusted parties as being beyond the purview of IdAS.
> But we're talking about ContextRefs, not Contexts. I completely agree
that an open Context should never be passed to someone else.  But have a
ContextRef does not give me permission to do anything.  It simply gives
me a handle that I can use to create and open a different Context to the
same data source.


_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https ://dev.eclipse.org/mailman/listinfo/higgins <https://dev.eclipse.org/mailman/listinfo/higgins>-dev
------------------------------------------------------------------------

_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev



Back to the top