Bugzilla:OpenID Auth Plugin

From MozillaWiki
Jump to navigation Jump to search

This page is a specification of how OpenID authentication should work in Bugzilla. In OpenID nomenclature, this is about making Bugzilla an OpenID "consumer".

OpenID is a decentralized authentication system which allows web server applications such as Bugzilla (known as "consumers") to authenticate users by URI. Through three different two-way conversations (user to consumer, user to server, consumer to server), the consumer can test a user's ownership of a URI without having to receive a password directly from the user, thus not needing to collect and store passwords.

Status

Version 0.1.1 has been submitted to the BZ tracker:

The patch no longer cleanly applies to the current codebase. defparams.pl apparently no longer exists.

The submitter of this patch (Rob Lanphier) is willing to hand this off, due to the likely delay before getting to this project. Add a comment to the current bug to volunteer to take over.

Open Issues

  • Where should the OpenID URI be stored?
    • Currently using profiles/extern_id. Long term should probably be its own field, and longer than 64 bytes.
  • Should user log in using email or by OpenID?
  • Should email verification process still occur?
    • There doesn't appear to be any way around it, as there's no way to query an OpenID server for an email address. That may mean that LID or FOAF is also needed to make this work in a way that doesn't require an email verification ping-pong. (Take a look at OpenID Simple Registration Extension, it will do what you want and is supported by many IdPs). Current version must be used in tandem with DB.
  • Should a confirm hash style verification (ala Mailman or GForge) be created, as opposed to mailing a password to the user
  • How should createaccount.cgi modification be done?
    • It's tempting to restructure this code, creating a new Bugzilla->create_account($cgi) method, and moving the current code into Bugzilla/Auth/Login/WWW/CGI.pm . Current version just relies on existing code, pretty much unmodified, so you must sign up for an account using old-fashioned means, and then associate an OpenID in the prefs.
  • OpenID::Consumer library v0.11 (perl) fails taint check
  • Cookie expiration
    • Current implementation is almost certainly wrong (indefinite length cookies).

Other Links

OpenID Servers