I'll add more information to the Wiki as more details are determined.
--
Mark Ramm-Christensen
email: mark at compoundthinking dot com
blog: www.compoundthinking.com/blog
+1 on that!
Iain
I really think an emphasis on some kind of Identity solution should be
made.
We do? If you're talking about the page in the 2.0 RoughDocs
section[1] then I strongly disagree that we have instructions - that
page consists of some barely explained notes and doesn't actually show
how to use Authkit at all.
[1]: http://docs.turbogears.org/2.0/RoughDocs/AuthKit
> a) Making a TG1 identity compatible layer
> b) Create a wonderful, all-powerful new auth* API
>
> Thing is, I'm not sure (a) is that important, or that we're ready to do (b)
> just yet.
>
I would need to poke around with Authkit to actually have a good
opinion on this but from what I've read elsewhere Authkit is good for
authentication but annoyingly complex for authorization. Maybe a mix
and match approach would be better?
I'm going to be starting a project with TG2 soon and auth/auth will be
required so I'm hoping I'll be able to contribute to this effort.
--
Lee McFadden
blog: http://www.splee.co.uk
work: http://fireflisystems.com
skype: fireflisystems
>>We've already got instructions for using AuthKit with TG2, so some auth*
>>solution is available already. Potential next steps are:
>>
>>
>We do? If you're talking about the page in the 2.0 RoughDocs
>section[1] then I strongly disagree that we have instructions - that
>page consists of some barely explained notes and doesn't actually show
>how to use Authkit at all.
>[1]: http://docs.turbogears.org/2.0/RoughDocs/AuthKit
>
>
The instructions are tried-and-tested, and get you going with AuthKit on
TG2. AuthKit has its own documentation that describes the API.
>I would need to poke around with Authkit to actually have a good
>opinion on this but from what I've read elsewhere Authkit is good for
>authentication but annoyingly complex for authorization. Maybe a mix
>and match approach would be better?
>
>
Yes, I'm sure there are a few gems to be picked up from all the existing
auth* systems. One thing I was thinking as well is creating a wiki page
where people can share complex permissioning models they've created.
There was some chat about these at my local PUG. The main requirement I
have for auth* actually is integrated Windows authentication.
Paul
I think it would be valuable to have a TG2 template with authKit built-
in for identity. Not having identity is definitely a barrier to use
when things like Plone/Grok/Django do authentication out of the box.
Also, I like the @identity decorator and I wondered if there was a TG2
equivalent yet? What about identity.requires = "admin" and such in the
controllers. Is that working in TG2? This is the real meat and
potatoes of what I am talking about getting working.
-chris
Sounds good to me.
I think the @require decorator and the predicite checking syntax are good.
i would love to see user/group/permission stuff grabbed by the
identity middleware and put into the wsgi environ, so that the
decorators are just dependant on the identity key in the environ.
That will localize all of the provider customization in the
middleware, and I agree that need to be designed up front to work with
multiple backends. I also think it might be worthwhile offering an
option to cache all that information in the beaker session, so that
folks using Memcachd can avoid a database hit for users who are
already authenticated. But that's the kind of thing that we can grow
later. But I do think it totally reasonable to have identity depend
on beaker for "visit" like functionality if necessary.
--Mark Ramm
IMHO the user object MUST be pluggable - especially if you don't have a
simple user model like identity assumes but different users which are
authenticated against different authentication sources.
Please don't assume that everything is username+password. There is more:
Sometimes clients (mostly banks) want a branch number before. Others have a
user name but require something what is essentially a second password. So
smooth 95% of the use cases (username+password) but don't make the more
complicated ones impossible.
And last but not least it should be easy to extend the auth* stuff for
things like captchas and form tokens. An implementation built into the
standard library is something (IMHO) which can be post-poned after 2.0.
fs
> Hmmm, hadn't thought about captchas...what exactly would that
> require? Just the ability to show the user some extra info, and
> receive some extra info from the user? or is there something else I'm
> not thinking of?
They're sometimes used to prevent brute force password attacks. They can
also be used to prevent a particular kind of DOS attack. So, you have
your normal login, and after three bad passwords instead of locking the
account, require a captcha for each login attempt.
I've seen this in use on a few live sites, seems to work ok. To be
honest though, most sites just have lockout on three bad passwords and
live with the denial of service risk (maybe expiring lockouts after 1
hour). I've not seen that be a problem in practice.
Paul