Last time i had to integrate punbb with my intranet, i had to edit the punbb source files. I dont know how much things have change since then.
However, for an external auth system to work properly, following hooks may be neccesary:
1. a hook just before the actual login is performed. users may sync user accounts just before the actual login process. ( like wordpress's wp_authenticate hook )
2. a simple sample plugin should be included with new releases, for performing authentication against external database and ldap. These are the most common scenario, and will serve most people.
we can provide easy options for users to fill up:
database connection params, external db table name, name of user field, name of pass field, password hash scheme ( must support atleast md5 and sha1 )
If the external db is using different password encryption scheme ( for example , django uses random salt + sha1 hash ), user must be able to provide a custom fucntion to verify the passwords.
Invision board provides an easy to use sample plugin, that I modified a little bit for integration with django user database.
3. some more hooks to for proper user interface integration in case of external sso:
a. hook to enable / disable password update field within punbb ( just like wordpress's "show_password_fields" hook )
b. hook to get custom registration url, to show on top menu bar. ( to redirect user to external registration system , instead of redirecting to punbb's registration page )
c. hook to enable/disable password retrieve and reset function in punbb ( just like wordpress's "retrieve_password" and 'password_reset' hooks )
In short, SSO is not "just" user integration. Its about user interface too. And a forum should not try to be the CMS, but try to accompany a CMS. It's destined to work with external systems, so its SSO system should be really flexible.
And please take a look at wodpress's hooks. they seem to have covered almost everything imagineable...from output filters to sso...
And as much as i hate invision board, i had to use it this time, because i was able to get it working with django user db in just 10-15 minutes ...
But i am so much in love with punbb's slick interface, that I cant wait to replace it with punbb...