This package provides Kerberos backend for Python Social Auth. It can be used to
enable passwordless authentication inside a Django app or any other application
that supports Python Social Auth. This is a pure Python implementation which doesn't
depend on Apache mod_auth_kerb
.
To install:
pip install social-auth-kerberos
WARNING: you will need gcc, Python and kerberos devel packages to
build the gssapi
dependency because it doesn't provide binary packages. Try
dnf install gcc krb5-devel python3-devel
(Red Hat/Fedora) or
apt-get install gcc libkrb5-dev libpython3-dev
(Debian/Ubuntu).
Configure Python Social Auth and then make sure you have the following settings enabled:
AUTHENTICATION_BACKENDS = [ 'social_auth_kerberos.backend.KerberosAuth', 'django.contrib.auth.backends.ModelBackend', ] SOCIAL_AUTH_KRB5_KEYTAB = '/Kiwi/your-application.keytab'
IMPORTANT:
The principal name for your Kiwi TCMS web service must be
HTTP/<fqdn.example.com>@REALM.EXAMPLE.COM
where fqdn.example.com
is
the domain name of the Kiwi TCMS server and REALM.EXAMPLE.COM
is the
Kerberos realm that is used in your organization.
/Kiwi/your-application.keytab
is the keytab file for your
web app principal! If you install this inside a Docker container make sure
to chown 1001:root
!
Python Social Auth, and by extension this plugin, will create new user accounts upon first access of the web interface. In Kiwi TCMS users need to either be in the special group Tester or have sufficient permissions to add/edit/delete objects.
You can automatically assign new accounts to the Tester group if
you append social_auth_kerberos.pipeline.initiate_defaults
to the end
of the SOCIAL_AUTH_PIPELINE
setting.
WARNING: this is not done for you automatically because some administrators may want to employ different behaviour for newly registered accounts!
For more information about Kerberos see:
- How to configure Firefox for kerberos
- How to configure kerberos on Fedora
- How to generate a keytab file
or check out tests/Dockerfile.kerberos
.
- Update gssapi from 1.6.12 to 1.8.3
- Update social-auth-core from 4.0.1 to 4.5.1
- Document the need to compile
gssapi
. Fixes Issue #3 - Build and test with Python 3.11, Kiwi TCMS v12.7
- Remove unused import
- Add
social_auth_kerberos.pipeline
with function to initialize default permissions for newly created accounts. See section Pipeline configuration - Update README with more information how to configure this plugin
- Enable integration testing with Kerberos and coverage collection
- Keep a reference to current user before checking anything else. Resolves a crash for clients which know that the server is Kerberos enabled and directly send the Authorization header
- Be more tolerant to authorization request headers which don't match RFC-4459, section 4.2
- Pin license version to GPLv2 for Tidelift
- Initial release