Hi Stephen,

On Jan 10, 2008, at 1:10 PM, Stephen Bowman wrote:

Has anyone looked into implementing a Directory Service for PAM (or system) authentication? For apache authorization, I typically use pwauth (which works quite well), and I noticed that there are Apache Directory Services, but it's not possible (as far as I can tell) to leverage pwauth with these. To configure pwauth, the magic occurs in httpd.conf pointing at pwauth - there really is no htpasswd file.

It is definitely possible to use PAM for authentication, there are PAM bindings for Python, and there is a recent Twisted ticket about adding the necessary implementation for verifying credentials. ( http://twistedmatrix.com/trac/ticket/2970 ) However the IDirectoryService API also handles provisioning, which I don't think PAM exposes.

It may however be perfectly acceptable to create a directory service that uses PAM for authentication and either the XML or SQL IDirectoryService for provisioning.

Now work has been done in this area however, Apple doesn't use PAM very heavily. But here are some pointers in case someone on the list is interested in contributing.

Twisted Cred
http://twistedmatrix.com/projects/core/documentation/howto/cred.html

(We basically need a new IUsernamePassword supporting ICredentialChecker implementation.)

Python PAM binding using Ctypes
http://pypi.python.org/pypi/pam/0.1.2

More Python PAM bindings
http://pypi.python.org/pypi/spypam/1.0

The IDirectoryService interfaces
http://trac.macosforge.org/projects/calendarserver/browser/CalendarServer/trunk/twistedcaldav/directory/idirectory.py

It looks like you'll need to override IDirectoryRecord.verifyCredentials on the DirectoryRecord implementation for the service you'd like to use (xmlfile or sqldb should both be possible.)

-David
_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to