Sorry guys I've had a busy week and I'm only on the digest list so Ray's message took a while to come through.
Matt - I agree that an application should only have one login form (if it's a standard username* and a password is included we can create a UsernamePasswordAuthenticationToken and then call AuthenticationManager.authenticate). I'm also not convinced about the use of email addresses as OpenIDs as lots of existing sites use email for usernames. As for absolute transparency, some OpenID providers (e.g. myopenid) have a 'safe mode' that will only allow you to authenticate on their site... Ray - * Regex matching of the submitted principal makes perfect sense. I've currently got a TODO in the OpenIDAuthenticationProvider for mapping URLs to usernames before calling the AuthoritiesPopulator - it should be configurable but with sufficient documentation to try to prevent misconfiguration that might allow alice.evilopenid.com to access a local alice account. This becomes more critical if the webapp is also an OpenID provider and you allow users to use https://openid.mysite.com/{username} - (thinking out loud) in which case the OpenIDAuthenticationProvider could take a Map of openid.server domains to patterns (or some form of transformer bean)... It would be useful to refactor the CasAuthoritiesPopulator/DaoCasAuthoritiesPopulator etc. to an sso package (maybe rationalise the LdapAuthoritiesPopulator and the CasAuthoritiesPopulator interfaces?). For backwards compatibility it might be nice to make org.acegisecurity.providers.cas.populator.DaoCasAuthoritiesPopulator an empty subclass of the new DaoSsoAuthoritiesPopulator. I'll finish off the refactoring to abstract the JanRain consumer library, add some unit tests, move the package from com.opsera.acegi to org.acegisecurity and rewrite the steps in my initial reply to Matt for the reference guide and then zip it all up for the sandbox (I'll aim for early next week). Then I need to find the time to resume the server implementation; my primary concern is around seamlessly tying the user interaction into the flow - Myopenid makes you authenticate in a second window before clicking continue to be returned to the consuming site. Current idea is to configure the OpenID server authentication servlet URL as a secured resource - assume I may need to modify some Acegi code to allow the data to be rePOSTed to the servlet (or appended as a query string and then I can implement doGet on the servlet). Cheers, Robin -----Original Message----- Subject: Acegisecurity-developer Digest, Vol 11, Issue 2 To: acegisecurity-developer@lists.sourceforge.net Reply-to: acegisecurity-developer@lists.sourceforge.net Date: Tue, 13 Mar 2007 08:40:43 -0700 <snip> Date: Thu, 8 Mar 2007 08:41:46 -0600 From: "Ray Krueger" Subject: Re: [Acegisecurity-developer] OpenID support I am interested in getting involved in this effort as well. I agree with the transparency of the OpenId vs Username field. One of the ideas that I lean towards is following a url pattern, rather than just the host.domain pattern. DHH (the rails guy) talked about this exact subject a few days ago on his blog: http://www.loudthinking.com/arc/000606.html Following a URL pattern makes it extremely easy to tell the difference between the two. Providing a means in the code to define an 'openIdMatchPattern' that defines a regex to tell the difference would be the best way to go on our end in Acegi. Also, there several openId libraries out there, it would be senseless to build the authentication and delegation functionalities directly into Acegi. I think Robin is definitely on the right track there. I don't like the idea of our OpenID support calling off into our CAS code though, if the functionality there is useful outside of CAS it should get refactored into a new home. Robin, if you would like to get some other folks involved zip up the code and email it to me directly. I'll find a home for it in the sandbox and we can all start taking a look at it. -----Original Message----- From: Matt Raible Sent: 08 March 2007 14:20 To: Robin.Bramley Cc: acegisecurity-developer@lists.sourceforge.net Subject: Re: [Acegisecurity-developer] OpenID support That's great to hear someone is working on this. However, I'm wondering if it's possible to make it more transparent to the user. For example, have some sort of bean or filter that's OpenID aware and has a list of servers to talk to. If there's two dots in the username, Acegi attempts to authenticate with open id (through some background call that's transparent to the user). If not, it attempts normal authentication. Is there any problem with providing this type of transparency? I like the idea behind having the openid string and username come from the same text box. http://www.pjhyett.com/posts/213-openid-isn-t-going-to-work-unless I don't know about the fake e-mail address in the above post, but I like the idea of assuming openid when no password is entered. Matt ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Home: http://acegisecurity.org Acegisecurity-developer mailing list Acegisecurity-developer@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer