After spending some time looking at cherrypy's implementation of
sessions, as well as, Jeff Watkin's Identity Management, I thought I
might share some questions/concerns. First off, I'd like to thank Jeff
for throwing out the basic Identity framework. Strong work and much
thanks. Now, on to the issues:

1. One of the things I find problematic with cherrypy and Identity is
that they couple session management with cookies. This is fine if the
client is a browser, not so otherwise. Specifically, I'm thinking of
XMLRPC (and SOAP) clients that need to maintain state. If I'm not
mistaken, in those cases, cherrypy changes the data to appear as form
data to the server. Since identity filter already makes a distinction
between cookie and form data, and XMLRPC data is converted to appear as
form data (not entirely sure of this though), would it make sense to
generalize the interface so that the session is sent  to and retrieved
from the client via a user defined methodology (with multiple ways for
the same server to send and retrieve session data depending on the
client accessing the session)?

2. I also find the coupling of session management with auth schemes
problematic. Now I realize that in order to implement identity, it
meant creating a way to maintain state on the server side. But Cherrypy
has a fairly flexible mechanism for mainting sessions in Ram, a flat
file, or on a database. Wouldn't it be more practical to push for
changes on cherrpy's implementation? After all, the point of turbogears
is to utilize pre-existing technologies and their communities, not
reinvent the wheel.

2. Everything I've read says that authentication and authorization
should be decoupled; is there a reason Identity didn't do so here? What
happens if I just want to use the authentication scheme, but not worry
about permissions? For ease of use, it would be nice to configure and
reference each separately.

3. The code currently uses one secret token for the entire lifetime of
the identity provider and there is a note that it should create one
token for each identity - I agree. Additionally, for those of us with
high security needs (i.e., we're worried about someone intercepting a
request), it would be nice if the token were updated upon each request
by each identity, or even better yet, a key system (or at least the
option to do this) that ensures any intercepted data can not be used to
access a session.

4. Finally, why the heck is everything stuffed into an init file?
ewwwww. :-)

Anyway, I hope this was constructive criticism and didn't come across
as endless bitching. I really do appreciate the work you all have put
into this.

-Paul

Reply via email to