Some have complained that HTTP Authentication has a poor user interface. This article addresses this.
The problem of not having a logout button will be considered in a separate article.
Some have complained that the fact that the user interface is themed with the browser, rather than the site is "jarring". Others, in the words of the W3C XForms Group Wiki HTTP Authentication [10] page, have argued that "this might give form authors access to the authentication data, or might cause users confusion since the browser-controlled look-and-feel was no longer present". This is the traditional tradeoff of security vs. usability.
The current HTTP Authentication system does not allow adequate descriptions to be sent. For example, if you want to refer to the username as an "E-mail address", or the password as a PIN number, this is currently impossible.
If the user has forgotten their password (or even their username), there should be a way to have this sent to their e-mail address. This currently requires escaping from the HTTP Authentication prompt and then using another method to do this. It would be much better if HTTP Authentication would support this.
The only way to create new accounts follows much the same process as the forgotten passwords problem above.
This solution was suggested by Mr. Prasad Chodavarapu, on the article HTTP Authentication Woes [11], by Mr. Bill Venners.
The basic idea is to have one page that isn't password protected, and has options including:
The "Log me in" link would then point at a page that requires HTTP Authentication.
This is a moderately good solution, but there's still plenty of room for improvement.
The basic solution here is to change the HTTP RFC to support the use of a form in HTTP Authentication. Variations on this have been suggested in:
At the time of "User Agent Authentication Form Elements [14]", it was forwarded to the XForms committee. What's happend since then:
As far as I can see, nothing has been done to actually try to get "User Agent Authentication Form Elements" updated to comply with XForms 1.0.
The W3C XForms Group Wiki's page on HTTP Authentication [16] states that XForms 1.0 did not support HTTP Authentication. They're considering revisiting that decision for XForms 1.1. But only considering. Feel free to help them consider.
Their basic concerns were that they were uncertain about abandoning the following advantages of the status quo:
If CSS and Javascript were disallowed on the HTTP Authentication form, some of these problems might be avoidable.
I would suggest that XForms 1.1 be altered as necessary to support HTTP Authentication, but that it be left up to the HTTP RFC to specify the necessary alterations to HTTP. This means that the steps from here are:
The basic idea here is to allow the following information to be sent with the HTTP Authentication request:
This solution is obviously more secure, but most definitely less flexible than the other. For example, it doesn't allow additional fields, such as might be desired when creating a new user. I personally would prefer the XForms-based solution, but the above would go a long way towards remedying the existing faults.
Links:
[1] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc0
[2] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc1
[3] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc2
[4] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc3
[5] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc4
[6] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc5
[7] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc6
[8] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc7
[9] http://computerstuff.jdarx.info/content/http-authentication-user-interface#toc8
[10] http://www.w3.org/MarkUp/Forms/wiki/HTTP_Authentication
[11] http://www.artima.com/forums/flat.jsp?forum=106&thread=155252
[12] http://www.w3.org/TR/1999/NOTE-authentform-19990203
[13] http://fishbowl.pastiche.org/2003/12/30/saving_http_authentication
[14] http://www.w3.org/TR/1999/NOTE-authentform-19990203
[15] http://www.w3.org/TR/xhtml-forms-req#http-auth
[16] http://www.w3.org/MarkUp/Forms/wiki/HTTP_Authentication