[CalendarServer-users] PAM Authentication?

David Reid dreid at apple.com
Thu Jan 10 14:43:13 PST 2008


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


More information about the calendarserver-users mailing list