
Hi cafe, Let me preface this by stating that this is purposely a half-baked idea, a straw man if you will. I'd like to hear what the community thinks about this. I mentioned yesterday that I was planning on building haskellers.com. The first technicality I considered was how login should work. There are a few basic ideas: * Username/password on the site. But who wants to deal with *another* password? * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc). * Facebook/Twitter/Google: We get the users email address, but do we *really* want to force users to have one of those accounts? I then started thinking about the Yesod documentation site[1], and realized in the not-too-distant future I'm going to want to provide a feature tracker. Once again, I'll need to face the exact same problem. And then I realized something: I already have *two* Haskell-centric logins: one for Hackage, and one for the Haskell wiki. Consolidating our logins as a community could be a huge plus. If we keep the same kind of system as we have now with Hackage and the wiki, we can verify each new user to keep things "clean". Or even better: we could have a built-in permissions system: permissions for uploading to Hackage, modifying the wiki, feature requests, etc. Users get simplification of only needing to apply for an account once and only need to remember one password. (In fact, if we wanted to, we could bypass the password some of the time by allowing OpenID authentication.) But perhaps the biggest advantage would be the community building advantage. Imagine if you go to Hackage and the upload by field is a link to someone's Haskellers profile. Imagine going to Haskellers and seeing a list of all the users uploaded packages and wiki contributions. We could even start with some clever things like badges per user. I'm sure there are lots of possibilities out there I haven't considered. Obviously there are some technical hurdles to overcome. We would probably need to do some significant work on the wiki to get this to happen. But given that we seem to have had trouble with mediawiki in the past (I remember hearing about some migration issues), maybe it's time to eat our own dog food and switch to a Haskell-based wiki[2] that could be more easily modified to suit our needs. We would also need some kind of protocol for the cross-site authentication; OAuth 2.0 might be worth considering for this. All of this may just be the ramblings of a mad-man (I haven't had breakfast yet), but I do think that *some* form of unified login could really push Haskell forward. Michael [1] http://docs.yesodweb.com/ [2] http://hackage.haskell.org/package/gitit

On 17 September 2010 15:47, Michael Snoyman
Hi cafe,
I mentioned yesterday that I was planning on building haskellers.com. The first technicality I considered was how login should work. There are a few basic ideas:
* Username/password on the site. But who wants to deal with *another* password? * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
Unless the site providing the OpenID is Haskell.org (for people who identify with haskell.org as their primary community ;-), or if the user opts to link an email address to the OpenID they use to log in (ie. they want to authenticate with some other auth, but trust haskell.org enough to choose to provide an email address). On the other hand if someone wants to participate in some community aspects (ranking, chatting, whatever) but doesn't want to provide an email address for fear of spam, that's cool too. Conrad.

On Thu, Sep 16, 2010 at 11:47 PM, Michael Snoyman
Hi cafe,
Let me preface this by stating that this is purposely a half-baked idea, a straw man if you will. I'd like to hear what the community thinks about this.
I mentioned yesterday that I was planning on building haskellers.com. The first technicality I considered was how login should work. There are a few basic ideas:
* Username/password on the site. But who wants to deal with *another* password? * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
I would love to be able to use 1 account (preferably OpenID) across all of the haskell infrastructure, trac instances (GHC/Cabal and the ones on community.haskell.org), wiki, and hackage. I'm "Ok" with using separate ssh keys for the shell login.
* Facebook/Twitter/Google: We get the users email address, but do we *really* want to force users to have one of those accounts?
I thought google accounts (and maybe facebook) can be used with openid. I might be wrong about that.
I then started thinking about the Yesod documentation site[1], and realized in the not-too-distant future I'm going to want to provide a feature tracker. Once again, I'll need to face the exact same problem. And then I realized something: I already have *two* Haskell-centric logins: one for Hackage, and one for the Haskell wiki.
Consolidating our logins as a community could be a huge plus. If we keep the same kind of system as we have now with Hackage and the wiki, we can verify each new user to keep things "clean". Or even better: we could have a built-in permissions system: permissions for uploading to Hackage, modifying the wiki, feature requests, etc. Users get simplification of only needing to apply for an account once and only need to remember one password. (In fact, if we wanted to, we could bypass the password some of the time by allowing OpenID authentication.)
Keep in mind that we can separate identity (OpenID) from authorization data. We can also separate authorization from the policy enforcement. The terminology and degrees of separation are new to me but I've been learning about them for work recently. You could imagine a system where OpenID provides your identity. Once authenticated, you request to do something (say an hackage upload), the hackage sever can then request your authorization data (possibly from a different server) based on your authenticated identity. It could then get back a list of attributes saying what your identity is allowed to do. Then the enforcement could be carried out by hackage. It looks in your attributes, sees that you do or do not have upload privileges and then decides if the upload should work. There are other ways to do it of course.
But perhaps the biggest advantage would be the community building advantage. Imagine if you go to Hackage and the upload by field is a link to someone's Haskellers profile. Imagine going to Haskellers and seeing a list of all the users uploaded packages and wiki contributions. We could even start with some clever things like badges per user. I'm sure there are lots of possibilities out there I haven't considered.
What you're describing is exactly one of the things that having a stable identity across sites allows for. OpenID supports this well. My haskell community identity could be the same as my stackoverflow identity.
Obviously there are some technical hurdles to overcome. We would probably need to do some significant work on the wiki to get this to happen. But given that we seem to have had trouble with mediawiki in the past (I remember hearing about some migration issues), maybe it's time to eat our own dog food and switch to a Haskell-based wiki[2] that could be more easily modified to suit our needs. We would also need some kind of protocol for the cross-site authentication; OAuth 2.0 might be worth considering for this.
I could be mistaken, but I thought OAuth allowed for delegation not cross-site authentication. For example, I could use OAuth to let facebook get at my gmail contacts without giving facebook enough information to use gmail as me. As for switching to a haskell based wiki. It has some perks. The major hesitation for me is that what we have now seems to work well enough and I personally think the haskell community is better off not directing a large focused effort at refining a wiki engine. It's a fine line though and in general I feel that infrastructure is really important. I suspect it's hard to do a better job than MediaWiki simply because they have so many users and have done so much engineering work. I do like gitit though.
All of this may just be the ramblings of a mad-man (I haven't had breakfast yet), but I do think that *some* form of unified login could really push Haskell forward.
Yes, I think you've really stumbled on a good suggestion. We can quibble about implementation, but at a high level you have my vote! I was just saying today that the new hpaste site should support OpenID. Jason

On Fri, 17 Sep 2010 08:47:02 +0200, Michael Snoyman
Hi cafe, Hi,
Let me preface this by stating that this is purposely a half-baked idea, a straw man if you will. I'd like to hear what the community thinks about this.
I mentioned yesterday that I was planning on building haskellers.com. The first technicality I considered was how login should work. There are a few basic ideas:
* Username/password on the site. But who wants to deal with *another* password?
I don't really bother, I generate them and store them encrypted.
* Facebook/Twitter/Google: We get the users email address, but do we *really* want to force users to have one of those accounts?
No. However by nature Diaspora would become an option.
* OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
I would go this way. Building a new cross-sites authentication system would a big loss of time. Then you're right one needs a place to store more information about the users, I see some options: - OpenID do provides with customizable profiles that could hold some information, I don't remember the details though. - If it is not enough, then having such a service for the community would be doable and independent of the authentication. This service could holds permissions for the different services around. Best regards, -- Nicolas Pouillard http://nicolaspouillard.fr

Why not use kerberos? We find it works for us, integrates with web (natively or via WebAuth), remote command execution (remctl) and ssh - widely used, scales brilliantly. Neil

Excerpts from Neil Davies's message of Fri Sep 17 05:27:34 -0400 2010:
Why not use kerberos?
We find it works for us, integrates with web (natively or via WebAuth), remote command execution (remctl) and ssh - widely used, scales brilliantly.
MIT uses Kerberos and it is quite nice to be able to just set up a machine with Kerberos and automatically have secure, centralized authentication mechanism. However, I fear that a HASKELL.ORG Kerberos realm might be overkill for our uses... Edward

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 9/17/10 05:27 , Neil Davies wrote:
Why not use kerberos?
We find it works for us, integrates with web (natively or via WebAuth), remote command execution (remctl) and ssh - widely used, scales brilliantly.
1. Kerberos is only authentication. Authorization you get to deal with yourself, and you won't be able to use many off the shelf solutions in that space. 2. You require people to have Kerberos clients, and possibly kx509 for web auth. Or else you're just using it as a password store for programs to check against, in which case you've pretty much made it pointless. Mind, we use Kerberos heavily around here... but we have the infrastructure that uses it. Web application space is *not* something that integrates well, though, unless you use it as a dumb store and manage the resulting authentication information yourself (Pubcookie, etc.). For a primarily web based community, it's not an appropriate choice. - -- brandon s. allbery [linux,solaris,freebsd,perl] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyT4QgACgkQIn7hlCsL25WLawCdEn2nbfAMTBxTu5aXGkVtVSga IfMAn2UiQ1f9G2wsiAL3PhmDPr5tzlFb =NWAB -----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 9/17/10 17:43 , Brandon S Allbery KF8NH wrote:
Why not use kerberos? Mind, we use Kerberos heavily around here... but we have the infrastructure
On 9/17/10 05:27 , Neil Davies wrote: that uses it. Web application space is *not* something that integrates well, though, unless you use it as a dumb store and manage the resulting authentication information yourself (Pubcookie, etc.). For a primarily web
Additional: MIT does use it for web auth (cf. ezyang's response in this thread), but I believe they use a third mechanism: users have certificates, which are registered with the KDC and used via PKINIT. The infrastructure cost of this is (currently, PKINIT still being not quite fully nailed down) higher than anyone in the Haskell community is likely to be willing to deal with --- and you *still* have to solve the authorization problem yourself. - -- brandon s. allbery [linux,solaris,freebsd,perl] allbery@kf8nh.com system administrator [openafs,heimdal,too many hats] allbery@ece.cmu.edu electrical and computer engineering, carnegie mellon university KF8NH -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.10 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyT4m8ACgkQIn7hlCsL25VKawCeNTumjtGy7U9HVdC4DXs8+lhb tTYAoJZtP3ZxH90hqOWsldkWd1eyiROm =jokt -----END PGP SIGNATURE-----

On Fri, 2010-09-17 at 08:47 +0200, Michael Snoyman wrote:
Hi cafe,
Let me preface this by stating that this is purposely a half-baked idea, a straw man if you will. I'd like to hear what the community thinks about this.
I mentioned yesterday that I was planning on building haskellers.com. The first technicality I considered was how login should work. There are a few basic ideas:
* Username/password on the site. But who wants to deal with *another* password? * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
Actually most OpenID providers uses OpenID extension which allows to query (with user permission) about data such as e-mail address, real name etc.
* Facebook/Twitter/Google: We get the users email address, but do we *really* want to force users to have one of those accounts?
Possibly also: * FOAF/SSL: Practically not used in wild I'd give +1 for either common username/password or OpenID. Regards

* Michael Snoyman
* OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
This is a popular misconception. As was noted on this thread, many OpenID provideers may provide you an email or other information if you asked for it and user had supplied it. But even if not, nothing actually prevents you from *just asking the user* for the email if you need it. See stackoverflow for an example when you authenticate yourself and then can supply more information about yourself. These things are simply unrelated. -- Roman I. Cheplyaka :: http://ro-che.info/ "Don't let school get in the way of your education." - Mark Twain

OpenID sounds like a plan. I'll probably add OpenID support to hpaste.org for management over pastes/remembering user details/default language, tracking annotations of your pastes, etc. We already have an OpenID Haskell implementation. Programming sites are already using it (Google, StackOverflow), we should follow suite.

Thank you everyone for the feedback. Based on what people have been
saying, here's a more concrete proposal:
* Creates a website haskellers.com where people can create profiles.
* Logins to haskellers.com will be via OpenID. There will probably be
some kind of widget to make that simpler[1].
* Multiple OpenIDs can be tied into a single profile on Haskellers.
* A profile on Haskellers will have a unique number and corresponding
unique URL associated with it (http://www.haskellers.com/profile/1/,
for example).
* On Haskellers you will be able to associate your Hackage username
somehow. I'll probably need some cooperation from the Hackage side.
(Ideally, I would have wanted a system where we could do away with
having a separate Hackage username, but I doubt that will happen.)
* The profile's unique URL will actually be a RESTful API, providing
data as HTML, JSON, possible a Haskell-specific format, etc.
* There will also be a RESTful API for discovering the profiles
available on Haskellers.
* And here's the important bit: there will be an API to lookup a
profile by OpenID URL. This is what will allow the universal login:
any site can simply allow OpenID login and query any information it
wants from Haskellers.
* Another feature I'd like to explore is allowing some kind of OAuth
protocol for other websites to gain authorization to make
modifications to profiles on Haskellers.
The question of *what* information we want as part of a profile is
also very important, but is really a tangential discussion to the
universal login issue. The question I have is whether this kind of a
system will provide the support other sites/services would want?
Notably absent here is the use of services besides OpenID for
authentication. I personally would have thought allowing Twitter and
Facebook logins would be a win, but there seems to be lackluster
interest in this. Also, having some kind of "login via Hackage"
probably would be nice as well, but once again does not seem like
there is demand for it.
Michael
[1] http://code.google.com/p/openid-selector/
On Fri, Sep 17, 2010 at 8:47 AM, Michael Snoyman
Hi cafe,
Let me preface this by stating that this is purposely a half-baked idea, a straw man if you will. I'd like to hear what the community thinks about this.
I mentioned yesterday that I was planning on building haskellers.com. The first technicality I considered was how login should work. There are a few basic ideas:
* Username/password on the site. But who wants to deal with *another* password? * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc). * Facebook/Twitter/Google: We get the users email address, but do we *really* want to force users to have one of those accounts?
I then started thinking about the Yesod documentation site[1], and realized in the not-too-distant future I'm going to want to provide a feature tracker. Once again, I'll need to face the exact same problem. And then I realized something: I already have *two* Haskell-centric logins: one for Hackage, and one for the Haskell wiki.
Consolidating our logins as a community could be a huge plus. If we keep the same kind of system as we have now with Hackage and the wiki, we can verify each new user to keep things "clean". Or even better: we could have a built-in permissions system: permissions for uploading to Hackage, modifying the wiki, feature requests, etc. Users get simplification of only needing to apply for an account once and only need to remember one password. (In fact, if we wanted to, we could bypass the password some of the time by allowing OpenID authentication.)
But perhaps the biggest advantage would be the community building advantage. Imagine if you go to Hackage and the upload by field is a link to someone's Haskellers profile. Imagine going to Haskellers and seeing a list of all the users uploaded packages and wiki contributions. We could even start with some clever things like badges per user. I'm sure there are lots of possibilities out there I haven't considered.
Obviously there are some technical hurdles to overcome. We would probably need to do some significant work on the wiki to get this to happen. But given that we seem to have had trouble with mediawiki in the past (I remember hearing about some migration issues), maybe it's time to eat our own dog food and switch to a Haskell-based wiki[2] that could be more easily modified to suit our needs. We would also need some kind of protocol for the cross-site authentication; OAuth 2.0 might be worth considering for this.
All of this may just be the ramblings of a mad-man (I haven't had breakfast yet), but I do think that *some* form of unified login could really push Haskell forward.
Michael
[1] http://docs.yesodweb.com/ [2] http://hackage.haskell.org/package/gitit

On Fri, Sep 17, 2010 at 6:47 PM, Michael Snoyman
* OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
I have my open id with verisign. https://pip.verisignlabs.com/ Verisign doesn't give me an email address but stores info about me including what my email address is, nickname, dob, time zone etc. In this case I have my verisign pip store my gmail address among other things and when I signed up for stackoverflow among a few other sites I had a page showing what my verisign pip stores and which of those infos I would like copied to my newly created stackoverflow account.

Let me respond to this directly since a number of people have brought this up:
Due to spam reasons we can't trust the email given via an OpenID
provider in general. For example, it would be trivial for me to create
an OpenID provider for myself, set my email address as
On Fri, Sep 17, 2010 at 6:47 PM, Michael Snoyman
wrote: * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc).
I have my open id with verisign. https://pip.verisignlabs.com/
Verisign doesn't give me an email address but stores info about me including what my email address is, nickname, dob, time zone etc. In this case I have my verisign pip store my gmail address among other things and when I signed up for stackoverflow among a few other sites I had a page showing what my verisign pip stores and which of those infos I would like copied to my newly created stackoverflow account.

On Sun, 19 Sep 2010 17:12:36 +0200, Michael Snoyman
Let me respond to this directly since a number of people have brought this up:
Due to spam reasons we can't trust the email given via an OpenID provider in general. For example, it would be trivial for me to create an OpenID provider for myself, set my email address as
and essentially spam them.
One can verify the email address found via the OpenID. However this would not really be spam since the email contents won't be chosen by the spammer. -- Nicolas Pouillard http://nicolaspouillard.fr

On Sun, 2010-09-19 at 17:12 +0200, Michael Snoyman wrote:
Let me respond to this directly since a number of people have brought this up:
Due to spam reasons we can't trust the email given via an OpenID provider in general. For example, it would be trivial for me to create an OpenID provider for myself, set my email address as
and essentially spam them. By going with a service like Facebook or Google, we know (or at least assume) that they do proper email validation, so we could immediately accept this value without needing to verify it ourselves.
In other words: Yes, I know there are extensions to OpenID. And no, we can't use it to get a verified email address.
Michael
There are people who for whatever reason don't use Facebook/Google/.... And sending verification e-mail costs practically nothing. Regards PS. If we have on-site registration it would have unverified e-mail as well.

On Mon, Sep 20, 2010 at 2:06 PM, Maciej Piechotka
On Sun, 2010-09-19 at 17:12 +0200, Michael Snoyman wrote:
Let me respond to this directly since a number of people have brought this up:
Due to spam reasons we can't trust the email given via an OpenID provider in general. For example, it would be trivial for me to create an OpenID provider for myself, set my email address as
and essentially spam them. By going with a service like Facebook or Google, we know (or at least assume) that they do proper email validation, so we could immediately accept this value without needing to verify it ourselves.
In other words: Yes, I know there are extensions to OpenID. And no, we can't use it to get a verified email address.
Michael
There are people who for whatever reason don't use Facebook/Google/.... And sending verification e-mail costs practically nothing.
Regards
PS. If we have on-site registration it would have unverified e-mail as well.
From my original email:
* Username/password on the site. But who wants to deal with *another* password? * OpenID. Fixes the extra password problem, but doesn't give us any extra information about the user (email address, etc). * Facebook/Twitter/Google: We get the users email address, but do we *really* want to force users to have one of those accounts? I disagree with the sentiment of "sending a verification e-mail costs practically nothing". While *sending* it is cheap, we then need to wait for users to respond to it. Compare this with a Google/Facebook login scenario, where they click a button on our site, click approve on Google/Facebook, and are completely approved. Michael
participants (11)
-
Brandon S Allbery KF8NH
-
Christopher Done
-
Conrad Parker
-
Edward Z. Yang
-
Jason Dagit
-
Maciej Piechotka
-
Michael Snoyman
-
Neil Davies
-
Nicolas Pouillard
-
Roman Cheplyaka
-
Tim Matthews