On Thursday 22 November 2001 03:35, [EMAIL PROTECTED] wrote:
> Tavis Rudd <[EMAIL PROTECTED]> wrote:
> >Remember, this discussion is about a UserManagement system that
> > can be used for the various application ideas on the AppIdeas
> > wiki page. Most of those would fall into the 'large, complex'
> > category.  We would really need to discuss the permissions system
> > in the context of each of those applications.  But as none of
> > them exist let's focus on authentification for now.
>
> Yes, this is what I think we should be concentrating on - it
> doesn't matter how "rights" are managed until we know how people
> should be identified and recognised. Indeed, as I mention on the
> Wiki, there are classes of applications for which the users,
> groups, roles model is inappropriate. What we should do is define a
> framework for authentication and allow people to build "rights
> management" (to use a contentious term) on top.


Agreed. ... I quite like that term.


> >What are people using at the moment to do their authentication?



> An aside: can we not call it authentication? I think you're the
> first person I've ever seen to use "authentification".

Hmmm, I should use a spell checker more often!

> >Notes:
> >* for authentification we only need to think in terms of users
>
> In more concrete terms, if a session identifier is used to
> associate a distinct but transient (temporary) identity, then a
> user is a persistent (permanent) identity which can be associated
> with one or many sessions at any given point in time.
>
> Through authentication, sessions become associated with users and,
> as a result, it should be possible to ask about the user who "owns"
> a session, although it is possible that no user owns a particular
> session because the session is only around to encapsulate the
> activities of a "client" (or "agent", "actor" or whatever we can
> call something which uses an application or service without
> actually being a registered user).

I guess we need to define this term as well.  How about 'client' and 
'authenticated client'?

> >* I assume we are going to use sessions to store the
> > authentification info.
>
> As can be guessed from what I've just written, it makes sense to
> "extend" sessions to allow a user identity to be associated with
> them. But no more than that should be involved; certainly not what
> rights someone has.

Totally agreed.  Someone's 'rights' should not be stored using 
sessions.  Although that's really up to the implementor of a 
particular 'rights management' system.


> >Here's a summary of the important questions:
> >
> >* At what stage in the request-response cycle does
> > authentification take place (Adapter, Application, or Servlet)?
> >Doing it at the Adapter level means we can use the same mechanism
> > to protect content that isn't served via WebKit. Doing it at the
> > Application level means that we can also protect static content
> > that is served via WebKit. Doing it at the Servlet level means
> > that we can only protect servlets.
>
> This is a good question, and it's great to see someone else
> wondering about this as well. ;-) I think it's important that if
> the Adapter, Web server or Application performs authentication,
> then the WebKit components should obviously be aware of the
> identities of users of the system, even though no WebKit component
> will necessarily be managing any part of the authentication
> process; this would permit any "rights" or "roles" systems to be
> implemented at other levels in an application architecture.



> >* Assuming that we use sessions to store the authentification
> >details, how do we make sessions work with/without cookies? 
> > Extend this to protecting static content via WebKit.
>
> This question is really only an issue for the work on extending the
> existing session mechanisms and using modified paths or hidden form
> fields. Authentication shouldn't necessarily have a huge impact on
> this work.

Authentication clearly defines what is needed in this area so I think 
it will have a 'huge impact'.   For example, hidden form fields and 
javascript are totally out of the question for protecting static 
content.  The only options I can see are:
   * cookies
   * an IP or MAC address based system
   * query strings
   * modified paths (ala Clarks path-based sessions)

The last two would only work if this is happening through WebKit, 
rather than at the adapter/webserver level.

Last time I checked there weren't any good apache modules for doing 
non-HTTP authentication.  Has this changed recently?

Here's some useful links I just found:
http://sec.ure.org/apache_auth.shtml
http://www.ime.usp.br/~nelio/apache/
http://www.frogdot.org


> >* How do we store authentification information in the user
> > session?
> >
> >* How do we guard against session hijacking?
>
> I'm not really qualified to discuss these issues in depth, although
> the paper that someone referred to recently (I think it was Ian
> Bicking) is interesting for those interested in this area.

Anyone have a link to this?

> >* How are password's stored internally? plain or hashed?
>
> They should absolutely *not* be stored as plain (clear?) text. For
> those implementing Web services, I find it unacceptable that users'
> passwords would be stored in such a way. Whether or not users
> should invent a new password for each service they use, I suppose
> that many people do use passwords which are identical from service
> to service; by not protecting passwords, service or application
> providers could potentially leave their users open to damage which
> would not be limited to within their own services or applications.
> In short, it shows a disrespect for their users' sensitive
> information.

Glad we agree on that ;)  Now, how are they hashed?  md5, crypt, or 
something else?


> >* How do we interface with arbitrary stores of user information
> > and passwords (flat-file, BSD-DB, ZODB, relational database,
> > LDAP, etc.)
>
> Provided a convenient plug-in architecture exists, this should
> satisfy most users. It would be nice to provide "out of the box"
> solutions for this and other parts of Webware, though.
>
> >* When Webware makes the shift to a multi-application framework,
> > does authentfication span applications?
> >
> >* How do we make the authentification system fall-back to a
> >semi-secure mechanism (e.g. md5 hashes via javascript) when SSL
> > isn't available.
>
> I think we should keep the door open to as many authentication
> technologies as possible. The fact that WebKit only supports
> cookies as a session identifier "transport" is potentially a
> worrying enough factor demonstrating weaknesses in terms of
> accessibility.
>
> >* Do we want to enable some sort of IP filtering or automatic
> >IP-userID mapping?
> >
> >* Are we going to block brute-force dictionary attacks with a
> > failed login time-out mechanism?
>
> These things should be configurable by the developer.

We'd need to implement the hooks if we wanted to support them.

> >* Are we going to worry about multi-machine failover support?
>
> Well, I think we should worry about that *in general* for Webware
> first. ;-)

This is tied to session management and management of the user 
database.  mod_webkit (or was it just Terrel's modification of it) 
already has round-robin support for multiple AppServers.  If the 
sessions and user database can be shared between machines then it 
seems we've got fail-over support.  Sessions can be shared via NFS 
and the FileSessionStore or we can create a ZODBSessionStore / 
DBSessionStore.

> What I would like to emphasise is that authentication is something
> that has been done before many times and, more importantly,
> authentication frameworks have also been well-covered in the past.
> For example, the whole PAM system is supposedly oriented around
> letting people decide which mechanisms are best in their own cases.
> Therefore, it's important to design something which leaves the door
> open for flexibility, although "ready to roll" solutions would
> obviously be nice for the novice Webware developer.

True.  Flexibility and 'ready to roll' should go together if we get 
the design right.

_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss

Reply via email to