Re: JAAS Interface to sourceid
Bryan Field-Elliot <[email protected]> 24 Mar 2003 14:37:54 -0700
| Newsgroups | gmane.comp.sourceid.sso.devel |
|---|---|
| Message-ID | <[email protected]> |
Sorry I didn't reply sooner Noah, it was a busy week last week at the Liberty interoperability event, and I'm just now getting back into the swing of things. As I said in my last post (I think), the "Liberty-enabled Client or Proxy" really shouldn't have been named that, because it implies (incorrectly) that it's well-suited for client/server apps. Instead, in my opinion, it should have been named, "Liberty-enabled Browser or Proxy". I'm not sure I totally follow your architecture proposal below.. Are you suggesting there be JAAS code running at both the (rich) client, and at the SP (server)? With Jabber, PingID established a scenario whereby Jabber (truly a client/server app) could harness SourceID, as-is, to perform single sign-on. It's been proven to work and we will be demonstrating it at the RSA conference in April. Here is a write-up of what we did. It entails the "rich client" (in this case, the Jabber client) poping up a web browser for a quick authentication, and then closing the browser. http://www.sourceid.org/discuss/archives/000292.php After reading this, if we're still not on the same page, then please push me again! ;) Thanks, Bryan On Wed, 2003-03-19 at 10:09, [email protected] wrote: Thank you for replying. Since the discussions in this mailing list are a bit *lite* I'm excited to get any response. To answer your question, the model I'm looking for is client/server. I too have been down the path of using form-based login and share your regards to the level of inadequacy for supporting any authentication model beyond username/password. However my "workaround" is to trust the public credentials, in this case the username, submitted to the servlet container. This is obviously vulnerability, but without SSL or TLS with client acknowledgement, this is as good as its going to get for now. JSR 196 looks promising, but alas its not available. So getting back to the question. Client/Server authentication using JAAS with a Liberty Alliance Login Module that supports the LECP. As I understand it, the Liberty Protocol (LP) provides a federated security backend that appears to the client as a single authority (I'm probably over simplifying but) that can provide SP with security credentials for a specific user. If a LECP can translate a security token into a javax.security.Subject with the appropriate artifacts in there Public and Private credential sets, then each SP can access the required information and run as the Subject. This type of delegation provides a type of Single Sign On for all servers. If this theory make sense then it requires creating a client side authentication module that 'talks' the LP. I'd imagine something along the lines of JAAS --> LECP Java Module --> HTML/SOAP Binding JAAS --> SP Java Module --> SOAP Binding to remote database \ --> Optional local Principal Database \ --> Federated database JAAS becomes an interface to two java packages. org.sourceid.sso.lecp and org.source.sso.sp and would contain the necessary interfaces for playing each role. Currently the system ties very closely to JSP for the client of things, and servlets using redirects for the SP side of things. This makes teasing out the functionality a bit difficult and reuse of the util package is difficult because it relies on ServletConfig and other Servlet related APIs. Hopefully I haven't bored my audience or miss the point completely. Since I'm still learning this Protocol, I'm sure I've over simplified something, but I think this a good start for creating client/server JAAS login modules for the LP. I look forward to your comments, Noah "Bryan Field-Elliot" <[email protected]> Sent by: [email protected] 03/19/03 08:52 AM Please respond to sso-dev To: <[email protected]> cc: Subject: Re: [SourceID SSO-dev] JAAS Interface to sourceid Sorry I didn't respond sooner, I'm traveling this week. A big question first is, when you refer to using JAAS, are you talking about in a browser-based app, or in a client/server app? Most servlet containers support a JAAS interface for authenticating username and password, and I started to go down this road with Tomcat, but it turned out to be a nightmare to try to force Liberty's credential exchange into the standard "form-based login". see web.xml; and see this thread: http://www.mail-archive.com/[email protected]/msg84545.html The thread above has to do with using JAAS at the Servlet Container level, rather than at a client app UI level. If instead you're talking about a client/server app (which may or may not use HTTP to communicate over the wire), then you are right that LECP is in the ballpark of the correct protocol profile to use. I say in the ballpark because it's still married to HTTP, and to some extent still expects a browser of some kind (rather than a generic client application) on the client. We would have been much happier if LECP were originally named "Liberty-enabled Browser or Browser Proxy" instead of "Liberty-enabled Client or Proxy". Hope this helps get discussion started, I'm not sure if I'm hitting your aims directly or not. Thanks, Bryan ----- Original Message ----- From: <[email protected]> To: <[email protected]> Sent: Monday, March 17, 2003 12:09 PM Subject: [SourceID SSO-dev] JAAS Interface to sourceid > I'd like to purpose the question: How hard would it be to us the JAAS > interface for authentication? I'm more interested in federating the > identity of a user across an intranet where JAAS is the user interface and > the user id and artifacts (if I understand how artifacts are meant to be > used) are presented as java.security.Principal instances contained within > a Subject. > > After a brief run through of the Liberty Alliance Protocol docs, it seems > this scenario fits the LECP Profile scenario This would require having > identity providers and service provider interfaces that are decoupled from > the web presentation layer (the JSP layer). The servlets would have to > morph to the LECP profile as well as the HTTP-Artifact (as I understand is > the current implementation). > > The User Client role and the Service Provider role would be in the same VM > if JAAS is the interface. A callback handler would need to be put into > place for each of the security profiles. > > With this in consideration, where would be a good place to start? The > LECP user agent seems to be the most logical because it doesn't exist. How > much work would it take to get the SP and IDP to understand the LECP > protocol? > > TIA, > Noah > _______________________________________________ > sso-dev mailing list > [email protected] > http://mail.sourceid.org/mailman/listinfo/sso-dev > _______________________________________________ sso-dev mailing list [email protected] http://mail.sourceid.org/mailman/listinfo/sso-dev _______________________________________________ sso-dev mailing list [email protected] http://mail.sourceid.org/mailman/listinfo/sso-dev