Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [higgins-dev] [IdAS] Context open/close semantics


Considering your earlier point about multiple back-end data stores, what does "authenticate against IdAS" mean in general? In delegate mode, this is pretty obvious. But in passthrough mode (which your examples seem to imply), does this mean "force an authentication to all backing stores for a particular IContext"?

I could see a testAccess method or something to force authentication using the identity passed in during the open call, if that seems useful. (But I'd still want to know what "force authentication" means with respect to a particular Context that's fronting other Contexts or multiple data stores in different authentication domains.)

I'm not yet in favor of the whoami call. I guess I'm worried about someone random querying a Context and getting my identity object, which might contain private credentials. But, if we don't allow re-opening of Contexts, and if Factory.getContexts returns ContextRefs instead of Contexts, then I guess there's no easy way for someone random to get a reference to "my" Context object unless I give it to them.

Other opinions?

...Greg



Jim Sermersheim wrote:
>>> Greg Byrd <gbyrd@xxxxxxxx> 8/9/06 8:47 PM >>>
>Jim Sermersheim wrote:
<snip>
>I don't really understand the use case, probably because I'm not sure
>about SASL EXTERNAL.  The SSL stack chooses one of the certificates in
>the key store to do client authentication, but you don't know which. >And the identity associated with that certificate is the one that used
>for authorization.  (Is that correct?)  I'm still not sure why the
>client (or IdAS) needs to know which was used for authorization.
Yes, correct. I don't have a specific example which illustrates an IdAS consumer's need to know which identity it's being represented as. Maybe it needs to read the DigitalSubject corresponding to the identity used to authenticate. I assume the use cases are similar to those which caused the inclusion of the Unix whoami and RFC 4532.

>I'm not convinced of the need for an explicit authentication, separate
>from opening and accessing Context data.  Sorry to be so dense, but
>could you an example?  If doing lazy authentication, why not wait until
>the data is actually needed?  (In your multiple source example, the
>client is not aware of the multiple sources, correct?  So how would it
>know that it's time to authenticate to source X?)
Consider an application which wants to consume IdAS. This is application gathers a user's name and password. Sometimes this application simply needs to authenticate the user. If the user-supplied name/pw can be used to successfully authenticate against IdAS, then it is the policy of this application to allow that user to perform some actions. Other times, this application needs to authenticate the user, and as that user, read some attributes from that user's object. I guess I just hit on the example requiring the whoami capability. An application uses authenticates using SASL EXTERNAL as described earlier, then needs to read the authenticated identity's DS in order to do some form-fill work. Let me know if the example of the "application just needing to authenticate the use in order to do its own authZ" makes sense. If so, then we could move on to talking about the best way to do it. Sure we could tell the application to just perform a IContext.getSubject even though it doesn't need to read it, but that seems kludgy.
<snip>

>I agree that the either/or semantics is not a good idea.  I'm
>comfortable with creating a new one -- so we should say that opening a
>Context that's already open throws an exception.  I'm just not fond of
>the "reopening = identity change" option.
As long as we come away with a way that an application can do the equivalent of: connect, authN, authN, authN... I'm happy. ------------------------------------------------------------------------

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



Back to the top