Python Kerberos library used by CalendarServer
C Python
Latest commit a47bac7 Oct 13, 2016 @dreness dreness committed on GitHub Merge pull request #52 from kwlzn/kwlzn/none_principal_fix
Allow `authGSSClientInit` principal kwarg to be None.


PyKerberos Package

This Python package is a high-level wrapper for Kerberos (GSSAPI) operations. The goal is to avoid having to build a module that wraps the entire Kerberos.framework, and instead offer a limited set of functions that do what is needed for client/server Kerberos authentication based on <>.

Much of the C-code here is adapted from Apache's mod_auth_kerb-5.0rc7.


In this directory, run:

python build


You must have a valid Kerberos setup on the test machine and you should ensure that you have valid Kerberos tickets for any client authentication being done (run 'klist' on the command line). Additionally, for the server: it must have been configured as a valid Kerberos service with the Kerbersos server for its realm - this usually requires running kadmin on the server machine to add the principal and generate a keytab entry for it (run 'sudo klist -k' to see the currently available keytab entries).

Make sure that PYTHONPATH includes the appropriate build/lib.xxxx directory. Then run with suitable command line arguments:

python -u userid -p password -s service

-u user id for basic authenticate
-p password for basic authenticate
-s service principal for GSSAPI authentication (defaults to '')


The checkPassword method provided by this library is meant only for testing purposes as it does not offer any protection against possible KDC spoofing. That method should not be used in any production code.

Python APIs


Copyright and License

Copyright (c) 2006-2016 Apple Inc. All rights reserved.

This software is licensed under the Apache License, Version 2.0. The Apache License is a well-established open source license, enabling collaborative open source software development.

See the "LICENSE" file for the full text of the license terms.